пятница, 14 июня 2013 г.

JavaScript Объект это не класс

Это объект. Объект это не класс.

var bob = {};
     bob.name = 'Bob';
     bob.sayHi = function(){console.log('Hi, my name is ' + this.name);}

Новая переменная содержит указатель на тот же объект, а не создает новый объект.

var tom = bob; // tom - это лишь просто ссылка на bob. Изменение tom на самом деле изменяет bob.

Конструктор объектов - это функция. Функция - это класс. В JavaScript class = function. Это видно по class из EcmaScript 6.

function Person (name) {
    this.name = name;
    this.sayHi = function(){console.log('Hi, my name is ' + this.name);};
}

bob - это объект, созданный из класса Person.

var bob = new Person ('Bob');
     bob.sayHi();

Класс можно расширять через prototype.

Person.prototype.jump =  function(){console.log('The ' + this.name + 'can jump.');};

Наследование классов

function extend(o){
    function F(){}
    F.prototype = o;
    return new F():
}

var Child = extend(Person);
     Child.prototype.surname = 'Taylor';

var alice = Child('Alice');

Комментариев нет:

Отправить комментарий