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