function ObjA() {
this.a = 'text';
}
var obj = new ObjA();
和
function ObjB() {
return {
a: 'text'
};
}
var obj = new ObjB();
我这么问是因为我读this question,我已经注意到了一个答案下面的区别:
function Test() {
this.a = 1;
return {
get A() { return this.a; },
set A(v) { this.a = v; }
};
}
所以我问自己,这和以下有什么区别:
function Test() {
this.a = 1;
}
Test.prototype = {
get A() { return this.a; },
set A(v) { this.a = v; }
};
他们说,在评论认为,昔日的“猪内存作为getter和setter是‘独一无二’的每次每个对象”。有人能详细说明吗?
这里真的有两个完全不同的问题;前两件事情以不同于第二件事的方式彼此不同。在第二对中,你的第二个例子实际上不起作用。构造函数内的'var'不会**成为对象属性。它不得不说'this.a = 1;'。 – Pointy
http://stackoverflow.com/questions/2938940/return-statement-in-js-constructors?rq=1 –
请问,你能改变名字吗?调用一个类“Object”就像是最糟糕的事情。 – Prinzhorn