Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.10.2010, 12:48
Интересующийся
Отправить личное сообщение для klimashkin Посмотреть профиль Найти все сообщения от klimashkin
 
Регистрация: 05.10.2010
Сообщений: 16

Вопрос по прототипу объекта
Добры день!

Не могу разобраться в таком моменте. В статье ООП в 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;
}
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
function Object() {
    [native code]
}
Где я что-то не правильно понял?
Ответить с цитированием
  #2 (permalink)  
Старый 05.10.2010, 12:56
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Таки потому, что не пустой объект содержится в prototype по умолчанию. Как минимум там лежит свойство constructor. Если вы переопределяете prototype, то желательно восстановить и constructor.
Ответить с цитированием
  #3 (permalink)  
Старый 05.10.2010, 13:26
Интересующийся
Отправить личное сообщение для klimashkin Посмотреть профиль Найти все сообщения от klimashkin
 
Регистрация: 05.10.2010
Сообщений: 16

Хм.. Тогда надо поправить статью, а то она вводит в заблуждение

А что еще создается в 'умолчальном' прототипе?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
импорт объекта в текущий скоп LedVisel Общие вопросы Javascript 4 06.06.2010 00:31
Вопрос про ООП, цепочки прототипов. Shaci Общие вопросы Javascript 5 27.01.2010 14:50
Как по событию вызвать метод определенного экземпляра объекта jvs jQuery 3 24.12.2009 16:04
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00
Не работает перебор свойств объекта BANick Общие вопросы Javascript 1 16.09.2008 22:46