Показать сообщение отдельно
  #19 (permalink)  
Старый 26.10.2012, 04:59
Аспирант
Отправить личное сообщение для 12345c Посмотреть профиль Найти все сообщения от 12345c
 
Регистрация: 01.03.2009
Сообщений: 33

Цитата:
Цитата:
при чём тут прототип, если наследование не прототипное?
Сглючило меня, да. Тем не менее, как будет происходить наследование, интересно?
На следующем поколении эти свойства попадают в прототип и наследуются через него (по другому и быть не может, если мы используем классическое C.prototype = new B(); ). Но в пределах первого поколения мы можем вносить свойства 2 путями - через прототип B.prototype.prop222 = 'xxx'; или прямым присваиванием this.prop222 = 'yyy'; . Разница оказывается в том, что прямое - на 1 поколение более приоритетно: при совпадении свойств в С будет 'yyy', а переопределение прототипа B.prototype.prop222 не повлияет на C.prototype.prop222. Чтобы убить прототипность и дальше - нужно, конечно, переприсваивать свойства в каждом поколении. Платить придётся количеством действий, объёмом памяти для потомков. Зато - непрототипность.
Цитата:
Одноразовое копирование свойств объекта не есть наследование!
В пределах 1 поколения - это наследование. Тут как раз дилемма: или делаем копирование на каждом поколении, или полагаемся далее на прототипы. В результате получим 2 различных типа наследования.
Ответить с цитированием