オブジェクトリテラル/初期化子の自己参照 質問する

オブジェクトリテラル/初期化子の自己参照 質問する

次のようなものを JavaScript で動作させる方法はありますか?

var foo = {
    a: 5,
    b: 6,
    c: this.a + this.b  // Doesn't work
};

現在の形式では、thisは を参照しないため、このコードは明らかに参照エラーをスローしますfoo。しかし、オブジェクト リテラルのプロパティの値を、以前に宣言された他のプロパティに依存させる方法はあるでしょうか?

ベストアンサー1

まあ、私があなたに伝えられるのはゲッター:

var foo = {
  a: 5,
  b: 6,
  get c() {
    return this.a + this.b;
  }
}

console.log(foo.c) // 11

これは、ECMAScript 第 5 版仕様で導入された構文拡張であり、その構文はほとんどの最新ブラウザー (IE9 を含む) でサポートされています。

おすすめ記事