编辑:自己解决了。 我通过将我的代码包装在一个类中来完成这项工作,所以@ / this指的是我的对象而不是窗口
我正在写一个coffeescript脚本,没有使用Class。我的javascript代码包含在一个自治函数中:
(function() { ... }).call(this)
我有一个复选框列表,比如明天,昨天,下周,下个月等等。用户可以选择其中一个或几个。我没有检查用户选择了什么,而是将这些复选框存储在类名中(明天,nextWeek ......)。我没有检查我拥有的类名,然后调用适当的方法,而是创建了与类名对应的方法。
如果我的明天()是在全球范围内定义的,我会这样称呼:
this[expression]()
其中expression保存类名,例如明天。
为了实现这个目的,我定义了我的功能: this.tomorrow = function() {
return console.log("I was triggered");
};
明天()现在已在全球范围内定义。有没有办法在没有太多努力的情况下不在全局范围内定义函数?
答案 0 :(得分:0)
我通过将我的代码包装在一个类中来完成这项工作,所以@ /这是指我的对象而不是窗口。
@[expression]()
现在像预期的那样工作