如何从对象返回设置

时间:2012-10-09 09:36:05

标签: coffeescript

我做过这样的事情:

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

但失败了?这是为什么? 谢谢!

1 个答案:

答案 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);