私はこれを試しています
var a = {
"a" : "Hey",
"b" : this.a + "!"
};
console.log(a.b);
==>"undefined!"
しかし、これを使えば問題なく動作します。
var a = {};
a.a = "haha";
a.b = a.a + "!";
console.log(a.b);
==>"haha!"
最初の方法を使用して機能させるにはどうすればよいですか?
私はこれを試しています
var a = {
"a" : "Hey",
"b" : this.a + "!"
};
console.log(a.b);
==>"undefined!"
しかし、これを使えば問題なく動作します。
var a = {};
a.a = "haha";
a.b = a.a + "!";
console.log(a.b);
==>"haha!"
最初の方法を使用して機能させるにはどうすればよいですか?
Ecmascript エディション 5 では、オブジェクトにいくつかの優れた機能が追加されました: セッターとゲッターです。最新のブラウザーでは、getter メソッドを使用して必要な結果を得ることができます。
var a = {
"a" : "Hey",
get b(){ return this.a + "!" },
set c(x){ this.a = x}
};
a.b
これで正しい結果が得られますHey!
。
c のセッター関数により、通常の代入a.c = "foo"
が実際に ! に設定さa.a
れfoo
ます。