Вопрос по прототипу объекта
Добры день!
Не могу разобраться в таком моменте. В статье ООП в javascript: наследование написано: по умолчанию свойство prototype функции равно пустому объекту new Object() // Animal.prototype не указан явно, по умолчанию: Animal.prototype = {} Но почему тогда два вроде бы одинаковых примера дают разный результат?
function Tree(name) {
this.name = name;
}
Tree.prototype.sayHello = function(){
alert(this.name+'\n'+this.constructor);
}
theTree = new Tree("Redwood");
theTree.sayHello();
Результат: Код:
Redwood
function Tree(name) {
this.name = name;
}
Tree.prototype = {}
Tree.prototype.sayHello = function(){
alert(this.name+'\n'+this.constructor);
}
theTree = new Tree("Redwood");
theTree.sayHello();
Результат: Код:
Redwood |
Таки потому, что не пустой объект содержится в prototype по умолчанию. Как минимум там лежит свойство constructor. Если вы переопределяете prototype, то желательно восстановить и constructor.
|
Хм.. Тогда надо поправить статью, а то она вводит в заблуждение
А что еще создается в 'умолчальном' прототипе? |
| Часовой пояс GMT +3, время: 18:45. |