Я изучал наследование 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-й выпуск, David Flanagan
Разве это поведение не могло быть применено к вышеупомянутому случаю, также?
Кто-либо может разъясниться?