我做过这样的事情:
myProject =
settings:
duration: 500
value: 'aValue'
aFunction: ->
myElement.fadeOut myProject.settings.duration
这只是一个示例,但我的项目就是这样。很多时候我必须参考设置来获得一定的值,而且我总是要写myProject.settings.value
,看起来不太好。
我的问题是,我可以调用一个返回所需值的函数吗?像这样:
aFunction: ->
myElement.fadeOut getSetting(duration)
我试过
getSetting: (param) ->
myProject.settings.param
但失败了?这是为什么? 谢谢!
答案 0 :(得分:2)
要通过变量访问对象属性,您可以执行以下操作:
object[key]
在coffeescript中,最后一行应该是返回值,在您的示例中: 请注意@(= this)。
myProject =
settings:
duration: 500
value: 'aValue'
fadeOut: ($element) ->
$element.fadeOut @getSetting('duration')
getSetting: (key) ->
@settings[key]
myProject.fadeOut($myElement)
javascript:
var myProject;
myProject = {
settings: {
duration: 500,
value: 'aValue'
},
fadeOut: function($element) {
return $element.fadeOut(this.getSetting('duration'));
},
getSetting: function(key) {
return this.settings[key];
}
};
myProject.fadeOut($myElement);