Сообщение от father_gorry
|
Нельзя наследовать функции? Хорошо, буду наследовать объекты.
|
именно, тут ПРОТОТИПНОЕ наследование..
ты создаешь класс (функцию), и задаешь для неё ПРОТОТИП, ЭТАЛОН так сказать, от которого будут все наследовать если различия не указаны явно.
function Animal(){
this.animal = true;
}
function Cat(){
this.cat = true;
}
Cat.prototype = new Animal; // Укажем, что эталоном для Котов будет Животное (создадим его в специальное свойство конструктора котов, таким образом все созданные этим конструктором коты будут ровняться на это животное и стараться быть похожими на него ([B]даже если оно видоизменится кстати[/B]) )
new Cat().animal // true
new Cat().cat // true
тадаааа
терь покажу какой в этом прикол
function Animal(){
this.animal = true;
}
function Cat(){
this.cat = true;
}
Cat.prototype = new Animal;
new Cat().ololo // unefined - НИ У КОТОВ НИ У ЖИВОТНЫХ НЕТ ТАКОГО СВОЙСТВА
// что ж все коты будут походить на то эталонное животное которое мы создали в свойство prototype конструктора говорите? хм..
// ну хорошо, тут щас лежит животное, эталон, так сказать для котов, добавлю ка я ему свойство. проверим появится ли оно у котов?
Cat.prototype.ololololololo = 11;
new Cat().ololololololo //11
// хм прикольно, а что если я уже создал 900000 котов, и ТОЛЬКО ПОСЛЕ ЭТОГО добавил в в их прототип новое свойство.. появится ли оно У УЖЕ СОЗДАННЫХ ДДООО этого котов?