Как сказал выше 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.
|