Показать сообщение отдельно
  #5 (permalink)  
Старый 29.08.2018, 16:34
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

Как сказал выше Rise: ты затер все конструкторы.
В __ptoto__ объекта должна быть ссылка на функцию-конструктор данного объекта(создавшую его). Соответственно делая X.prototype = new Y; заменяешь прототип X по умолчанию (по сути такой {constructor: X, __proto__:Object.prototype }) на объект созданный Y, в котором нет свойства constructor.
Chrome в твоём случае для c соответственно смотрит в __proto__, не видит там constructor, лезет в __proto__.__proto__ смотрит там, не видит, смотрит в __proto__.__proto__.__proto__ и наконец находит первый коструктор, прототип для которого не менялся, сохранив сие свойство: A.
__________________
29375, 35

Последний раз редактировалось Aetae, 29.08.2018 в 16:41.
Ответить с цитированием