JavaScript / Node.js:为什么原型.__ proto__ =原型而不是新的

时间:2011-09-09 20:26:44

标签: javascript node.js express

我正在研究node.js的Express框架,所有的继承都是通过:

完成的
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;

那些approches有什么好处吗?

提前致谢!

来自的例子:

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

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

2 个答案:

答案 0 :(得分:1)

new Array调用构造函数。设置__proto__没有。这是唯一的区别。

我认为作者太懒了不想使用Object.create

答案 1 :(得分:0)

Collection.prototype = new Array;

每个Collection都将共享相同的Array实例。

我不确定这是否适用于__proto__