Я смотрю в платформу 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
new Array вызывает конструктор.настройка __proto__ не имеет.Это единственное отличие.
new Array
__proto__
Я предполагаю, что автор был слишком ленивый не хотел использовать Object.create
Object.create
Каждая коллекция будет использовать один и тот же экземпляр массива.
Я не уверен, верно ли это для __proto__ или нет?