有书《Node.js开发指南》这书的看一下162页,没书的,我给出代码和相关语句。
以下为书中原话: 尽量在构造函数内定义一般成员,尤其是对象或数组,因为用原型定义的成员是多个 实例共享的。
经我测试(下面是测试用例),就算在原型中定义的成员,并不是共享的,而是各有一份,这个怎么说?
function Foo () {
var innerVar = 'hello';
this.prop1 = 'BYVoid';
this.func1 = function() {
innerVar = '';
};
}
Foo.prototype.prop2 = 'Car';
Foo.prototype.func2 = function() {
console.log(this.prop2);
};
var foo1 = new Foo();
var foo2 = new Foo();
console.log(foo1.func1 == foo2.func1); //false
console.log(foo1.func2 == foo2.func2); //true
foo1.prop2 = 'Mobile';
foo1.func2(); //Mobile
foo2.func2(); //Car