Показать сообщение отдельно
  #5 (permalink)  
Старый 31.08.2012, 23:13
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

Сообщение от FINoM
Но, я всегда думал, что, если метод не найден в прототипе конструктора, он будет искать его дальше:
C.prototype.method > не найден
C.prototype.constructor.prototype.method > не найден
C.prototype.constructor.prototype.constructor.prot otype.method ... и так дальше, пока ...prototype.constructor !== ...prototype.constructor.prototype.constructor
Блин я тоже так думал, но после этого убедился что это не так
X = function() {}
Y = function() {}
X.prototype.method = function () { alert( 'ok' ) };
y = new Y;
Y.prototype = new X;
alert( y.method );//undefined
alert( y.constructor.prototype.method );//function () { alert( 'ok' ) }

становиться очевидно что при создании объекта что то летает по внутренностям добавляя свойства и методы только один раз что бы потом не искать прототипе
P.S. спасибо за тему - кое что из неё я усвоил
Ответить с цитированием