基本上,我希望“theId”等于“getId”返回的内容。但是如何?
var Quiz = {
getId : function() {
var params = 1;
return params;
},
theId : getId(),
};
答案 0 :(得分:3)
对象文字本身不能引用属性/方法,因为在评估对象文字时,对象尚不存在。你必须分两步完成这个过程:
var Quiz = {
getId : function() {
var params = 1;
return params;
}
};
Quiz.theId = Quiz.getId();
请注意,这会将theId
设置为当时返回的getId()
,如果你的真实世界的功能是,那么它不会以某种方式自动更新theId
比您的示例更动态,并且每次调用时都可能返回不同的值。
或者,如果函数在对象之前声明,则可以同时创建两个对象属性,其中一个是对函数的引用,另一个是调用它的结果。
答案 1 :(得分:1)
有点像Self-references in object literal declarations的副本,但你可以使用简单的getter function作为你的财产:
var Quiz = {
get theID() {
var params = 1;
return params;
}
};