包装咖啡脚本范围-使用变量's值

Wrapped coffeescript scope - use a variable's value for calling function

本文关键字:变量 脚本 咖啡 范围 包装      更新时间:2023-09-26

Edit:自己解决了。我把代码包装在一个类中完成了这项工作,所以这是指我的对象,而不是窗口


我正在写一个咖啡脚本,没有使用Class。我的javascript代码封装在一个匿名函数中:

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

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

如果我的tomorrow()是在全局范围内定义的,我会这样称呼它:

this[expression]()

其中表达式包含类名,例如明天。

为了实现这一点,我定义了这样的函数:

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

tomorrow()现在已在全局范围中定义。有没有一种方法可以在不付出太多努力的情况下不在全局范围内定义函数?

我把代码包装在一个类中完成了这项工作,所以这是指我的对象,而不是窗口。

@[expression]() 

现在可以像预期的一样工作