【发布时间】:2011-07-20 04:06:44
【问题描述】:
我的对象中的很多属性可能是一个值,也可能是一个返回值的函数。访问一个值不同于调用一个函数(foo; vs foo();)。我目前采取以下方法。谁能推荐更好的?
var foo = {
bar: function(){
return 1;
},
// bar: 1, // bar may also be a standard value
GetBar: function(){
return $.isFunction(this.bar) ? this.bar() : this.bar;
},
Get: function(property){
return $.isFunction(property) ? property() : property;
}
}
foo.GetBar();//1
foo.Get(foo.bar);//1
我目前正在使用 foo.GetBar();方法,但是因为我必须为每个属性编写一个新函数,而不是一个值或一个函数,我认为最好使用 foo.Get(foo.bar);保持干燥的方法。如果您不能推荐更好的解决方案,我仍然希望听到您对所提供的两种方法的反馈。
谢谢。
【问题讨论】:
标签: javascript function object