35068

[code]

    var obj = {
      a: 2,
      b: 5,
      c: obj.a + obj.b
    };
    
[/code]

このような感じで `c` に前で宣言したプロパティを利用したいときどのように記述すればよいでしょうか？


CC BY-SA 3.0
2017-05-27T09:30:07.867
35066
2017-05-28T06:40:59.467
19687
question
javascript
JSのオブジェクトの直前プロパティを使いたい


obj.c が関数になってしまうが、thisでアクセスすれば可能かと思います。

[code]

    var obj = {
        a: 2,
        b: 5,
        c: function(){
            return this.a + this.b;
        }
    };
    
[/code]


CC BY-SA 3.0
2017-05-27T10:28:58.673
35067
2017-05-27T10:28:58.673
22793
35066
answer


回答ありがとうございます。yyzさんの回答をヒントに調べて見るといい方法がありました。

[code]

    var obj = {
        a: 2,
        b: 5,
        get c() {
            return this.a + this.b;
        }
    };
    obj.c;  // 7
    
[/code]

IE9以上なら `get` 演算子で簡単に書けるみたいです。


CC BY-SA 3.0
2017-05-27T10:45:01.350
35068
2017-05-27T10:45:01.350
19687
35066
answer


普通に代入じゃダメ？

[code]

    var obj = {};
    obj.a = 2;
    obj.b = 5;
    obj.c = obj.a + obj.b;
    
[/code]


CC BY-SA 3.0
2017-05-28T06:40:59.467
35087
2017-05-28T06:40:59.467
62
35066
answer