1

基本的に、「theId」を「getId」が返すものと等しくしたいと思います。しかし、どのように?

var Quiz = {
   getId : function() {
      var params = 1;
      return params;
   },
   theId : getId(),
};
4

2 に答える 2

3

オブジェクトリテラルが評価された時点ではオブジェクトがまだ存在していないため、オブジェクトリテラルはそれ自体の内部のプロパティ/メソッドを参照できません。あなたは2段階のプロセスとしてそれをしなければなりません:

var Quiz = {
   getId : function() {
      var params = 1;
      return params;
   }
};
Quiz.theId = Quiz.getId();

これは、その時点で返されたtheIdものに設定されますが、実際の関数が例よりも動的であり、呼び出されるたびに異なる値を返す可能性がある場合は、どういうわけか自動的に更新されないことに注意してください。getId()theId

または、関数がオブジェクトの前に宣言されている場合は、両方のオブジェクトプロパティを一度に作成できます。一方は関数への参照であり、もう一方は関数を呼び出した結果です。

于 2013-02-06T10:30:22.280 に答える
1

オブジェクトリテラル宣言の自己参照の複製に少し似ているように見えますが、プロパティに単純なゲッター関数を使用できます。

var Quiz = {
    get theID() {
        var params = 1;
        return params;
    }
};
于 2013-02-06T10:41:46.797 に答える