How to return settings from an object

2019-08-28 23:03发布

i have done something like this:

myProject =

  settings:
    duration: 500
    value: 'aValue'

  aFunction: ->
    myElement.fadeOut myProject.settings.duration

This is just a sample but my project is like that. A lot of times i have to reference to the settings to get a certain value, and i always have to write myProject.settings.value, and it doesn´t look good.

My question is, can I call a function that returns the wanted value? Something like this:

aFunction: ->
  myElement.fadeOut getSetting(duration)

I tried with

getSetting: (param) ->
  myProject.settings.param

but failed? Why is that? Thank you!

1条回答
Emotional °昔
2楼-- · 2019-08-28 23:25

To access an object property by a variable, you can do:

object[key]

In coffeescript, the last line should be the return value, in your example: Please note the @ (= this).

myProject =

  settings:
    duration: 500
    value: 'aValue'

  fadeOut: ($element) ->
    $element.fadeOut @getSetting('duration')

  getSetting: (key) ->
    @settings[key]

myProject.fadeOut($myElement)

The 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);
查看更多
登录 后发表回答