JavaScript / Node.js: почему прототип .__ proto__ = прототип вместо нового - PullRequest
2 голосов
/ 10 сентября 2011

Я смотрю в платформу Express для node.js, и все наследование выполняется:

Collection.prototype.__proto__ = Array.prototype;

Разве это не равно:

Collection.prototype = new Array;

Еще один:

var app = HTTPSServer.prototype;

function HTTPSServer(options, middleware){
  connect.HTTPSServer.call(this, options, []);
  this.init(middleware);
};

app.__proto__ = connect.HTTPSServer.prototype;

Есть ли преимущества этих подходов?

Заранее спасибо!

Примеры из:

https://github.com/visionmedia/express/blob/master/lib/router/collection.js

https://github.com/visionmedia/express/blob/master/lib/https.js

Ответы [ 2 ]

1 голос
/ 10 сентября 2011

new Array вызывает конструктор.настройка __proto__ не имеет.Это единственное отличие.

Я предполагаю, что автор был слишком ленивый не хотел использовать Object.create

0 голосов
/ 10 сентября 2011
Collection.prototype = new Array;

Каждая коллекция будет использовать один и тот же экземпляр массива.

Я не уверен, верно ли это для __proto__ или нет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...