-1

如何在 Javascript 中使用原型覆盖属性?

代码

function Test(){
    this.prop = false;
}

Test.prototype.prop = true;

var T = new Test();
console.log(T.prop);

这返回false但应该返回true

4

2 回答 2

0

如果您需要更改 t 属性的值,请直接从对象的实例访问该属性或在构造函数中指定它。

直接访问

var T = new Test();
t.prop = false;
console.log(T.prop);

构造函数

function Test(prop){
    this.prop = prop;
}

var T = new Test(false);
于 2012-11-13T13:51:13.453 回答
0

构造函数在原型复制之后执行。您不能使用原型覆盖由构造函数设置的属性。

但如果你真的想这样做,你可以这样做:

function Test(){
    if (this.prop === undefined) {
        this.prop = false;
    }
}
于 2012-11-13T13:54:07.983 回答