基本的に、「theId」を「getId」が返すものと等しくしたいと思います。しかし、どのように?
var Quiz = {
getId : function() {
var params = 1;
return params;
},
theId : getId(),
};
基本的に、「theId」を「getId」が返すものと等しくしたいと思います。しかし、どのように?
var Quiz = {
getId : function() {
var params = 1;
return params;
},
theId : getId(),
};
オブジェクトリテラルが評価された時点ではオブジェクトがまだ存在していないため、オブジェクトリテラルはそれ自体の内部のプロパティ/メソッドを参照できません。あなたは2段階のプロセスとしてそれをしなければなりません:
var Quiz = {
getId : function() {
var params = 1;
return params;
}
};
Quiz.theId = Quiz.getId();
これは、その時点で返されたtheId
ものに設定されますが、実際の関数が例よりも動的であり、呼び出されるたびに異なる値を返す可能性がある場合は、どういうわけか自動的に更新されないことに注意してください。getId()
theId
または、関数がオブジェクトの前に宣言されている場合は、両方のオブジェクトプロパティを一度に作成できます。一方は関数への参照であり、もう一方は関数を呼び出した結果です。
オブジェクトリテラル宣言の自己参照の複製に少し似ているように見えますが、プロパティに単純なゲッター関数を使用できます。
var Quiz = {
get theID() {
var params = 1;
return params;
}
};