包装的coffeescript范围 - 使用变量的值来调用函数

时间:2013-02-15 10:04:46

标签: javascript jquery coffeescript

编辑:自己解决了。 我通过将我的代码包装在一个类中来完成这项工作,所以@ / this指的是我的对象而不是窗口


我正在写一个coffeescript脚本,没有使用Class。我的javascript代码包含在一个自治函数中:

(function() { ... }).call(this)

我有一个复选框列表,比如明天,昨天,下周,下个月等等。用户可以选择其中一个或几个。我没有检查用户选择了什么,而是将这些复选框存储在类名中(明天,nextWeek ......)。我没有检查我拥有的类名,然后调用适当的方法,而是创建了与类名对应的方法。

如果我的明天()是在全球范围内定义的,我会这样称呼:

this[expression]()

其中expression保存类名,例如明天。

为了实现这个目的,我定义了我的功能:

  this.tomorrow = function() {
       return console.log("I was triggered");
  };

明天()现在已在全球范围内定义。有没有办法在没有太多努力的情况下不在全局范围内定义函数?

1 个答案:

答案 0 :(得分:0)

我通过将我的代码包装在一个类中来完成这项工作,所以@ /这是指我的对象而不是窗口。

@[expression]() 

现在像预期的那样工作