not good but great

プログラミング、アート、映画・本の感想について書きます。

同じオブジェクト内のプロパティを変数として使う

同じオブジェクト内のプロパティを変数として使いたかった。

var obj = {
    x : 100,
    y : x + 100//Uncaught ReferenceError: x is not defined 
}

console.log(obj.y);

これではエラーが出てしまった。

代替案を考えよう。参考にしたのはこれ。
javascript - Reuse a property value as a variable within the same object - Stack Overflow

オブジェクト宣言後に設定する

var obj = {
    x : 100
}

obj.y = obj.x + 100;

console.log(obj.y);//200

オブジェクトの外で、新しいプロパティを宣言する。

値に関数を使う

var obj = {
    x : 100,
    y : function(){
        return this.x + 100;
    }
}

console.log(obj.y());//200

関数を値として扱えるから、それをyの値にする。そこでthisを用いる。

クラスっぽいものをつくる

function number(){
    this.x = 100;
    this.y = this.x + 100;
}

var test = new number();

console.log(test.y);//200

jsでクラスって使うと、詳しい人に怒られそうなので、ここでは「っぽい」とつけることにする。

ちょっと長いけど、綺麗に書けた。