__ первичный __ и наследование в JavaScript

Я изучал наследование 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

Разве это поведение не могло быть применено к вышеупомянутому случаю, также?

Кто-либо может разъясниться?

6
задан asymmetric 13 August 2010 в 09:47
поделиться