воскресенье, 6 февраля 2011 г.

ООП javascript

Если нужно выбрать только свойства обьекта, а не его прототипа то:
for(prop in object) if (object.hasOwnProperty(prop)) {
    //...
}

Наследование в javascript
В самом языке есть только одно наследование - наследование на прототипах. Наслдеование на классах, это ручное наследование - трюк.
Классом для обькта, является функция, которая через оператор new создала этот обьект. Чтобы проверить на принадлежность обьекта определенному классу, нужно использовать оператор instanceof. Эта функция называется функция конструтор(пример с javascript.ru):
function Animal(name) {
  this.name = name
  this.canWalk = true
}
 
var animal = new Animal("скотинка")

Родное наслдование это наследование через прототип, что означает что обьект наследывает свойста и методы другого существующего на этот момент обьекта. Каждый обьект имеет прототип, ссылка на него хранится в свойстве [[prototype]], по стандарту она не обязана быть окрыта для чтения/записи, но в фаерфоксе это обычная ссылка __proto__. Единственный кроссбраузерный способ задать прототип это через функцию конструтор через параметр обьекта Function.prototype:
Animal.prototype = thing;

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

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