Я изучал наследование javascript в течение пары дней, и хотя я добился значительного прогресса, есть некоторые вещи, которые я еще не совсем понимаю.
Например, я нахожу это поведение довольно запутанным:
var Employee = function Employee() { this.company = 'xyz'; };
var Manager = function Manager() { this.wage = 'high'; };
var m = new Manager();
m; // { "wage": "high", __proto__ : Manager } -- no problems so far.
Manager.prototype = new Employee();
var n = new Manager;
m.company; // undefined
n.company; // "xyz"
Свойство
m
__proto__
указывает на объект, который не является Manager
текущим прототипом.
Это немного нелогично, учитывая, что:
Объект наследует свойства, даже если они добавлены в свой прототип после создания объекта.
Взято из JavaScript: Полное руководство, 5-е издание, Дэвид Фланаган
Не может ли это поведение быть применено и к вышеупомянутому делу?
Кто-нибудь может уточнить?