如何在 Javascript 中使用原型覆盖属性?
代码
function Test(){
this.prop = false;
}
Test.prototype.prop = true;
var T = new Test();
console.log(T.prop);
这返回false
但应该返回true
?
如何在 Javascript 中使用原型覆盖属性?
function Test(){
this.prop = false;
}
Test.prototype.prop = true;
var T = new Test();
console.log(T.prop);
这返回false
但应该返回true
?
如果您需要更改 t 属性的值,请直接从对象的实例访问该属性或在构造函数中指定它。
直接访问
var T = new Test();
t.prop = false;
console.log(T.prop);
构造函数
function Test(prop){
this.prop = prop;
}
var T = new Test(false);
构造函数在原型复制之后执行。您不能使用原型覆盖由构造函数设置的属性。
但如果你真的想这样做,你可以这样做:
function Test(){
if (this.prop === undefined) {
this.prop = false;
}
}