Показать сообщение отдельно
  #2 (permalink)  
Старый 03.10.2011, 11:41
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Когда во втором примере ты пишешь:
Сообщение от GuardCat
test1=new Test;
this.__proto__ внутри конструктора начинает ссылаться на Test.prototype. А дальше ты бац и заменяешь Test.prototype на новый объект, но this.__proto__ по-прежнему ссылается на старый объект, в котором метода f нет. Вот в ошибке и написано, что его нет. В первом примере ты изменяешь уже существующий объект, и т. к. на него ссылаются и this.__proto__ и Test.prototype, изменения видны в обоих.


Сообщение от GuardCat
Мне не очень нравятся многоблочные определения псевдоклассов. Т.е. когда вначале определяют класс, блок закрывают, а затем определяют его прототип
прототип будет .... , короче, не надо так, бяка.

Последний раз редактировалось Riim, 03.10.2011 в 11:45.
Ответить с цитированием