1

基本上,我希望“theId”等于“getId”返回的值。但是怎么做?

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

2 回答 2

3

对象字面量不能引用自身内部的属性/方法,因为在评估对象字面量时,该对象还不存在。您必须分两步进行:

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

请注意,它设置为当时返回的theId任何内容,如果您的实际函数比您的示例更具动态性并且每次调用时可能返回不同的值它不会以某种方式自动更新。getId()theId

或者,如果函数在对象之前声明,您可以一次创建两个对象属性,一个是对该函数的引用,另一个是调用它的结果。

于 2013-02-06T10:30:22.280 回答
1

看起来有点像对象文字声明中的自引用的副本,但您可以为您的属性使用一个简单的getter 函数

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