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;
}
}