-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 に答える