基于Coffeescript和标记的JS执行

基于Coffeescript和标记的JS执行,coffeescript,markup,Coffeescript,Markup,从这里的另一个线程中,我发现了这个关于基于标记的JS执行的伟大教程 加伯爱尔兰解决方案: 我正在查看如何在Coffeescript中实现这一部分 这很好用: SITENAME.surveys.show = -> alert "Hello CoffeeScript" 这表明: SITENAME.surveys.show = function() { return alert("Hello CoffeeScript"); }; 这个人不太高兴: SITENAME.surveys.

从这里的另一个线程中,我发现了这个关于基于标记的JS执行的伟大教程 加伯爱尔兰解决方案:

我正在查看如何在Coffeescript中实现这一部分

这很好用:

SITENAME.surveys.show = ->
  alert "Hello CoffeeScript"
这表明:

SITENAME.surveys.show = function() {
  return alert("Hello CoffeeScript");
};
这个人不太高兴:

SITENAME.surveys.new = ->
  alert "Hello CoffeeScript"

SITENAME.surveys["new"] = function() {
  return alert("Hello CoffeeScript");
};
我对Coffeescript还不熟悉,现在正在做一个codeschool.com课程。 我猜“new”关键字是专门为coffeescript设计的

有什么解决办法吗


谢谢

new
在JavaScript中是特殊的,CoffeeScript意识到这一点,所以它发出的代码实际上可以工作,即使使用保留关键字命名方法是不好的做法。

new
在JavaScript中是特殊的,CoffeeScript意识到这一点,所以它发出的代码实际上可以工作,即使它不好练习使用保留关键字命名方法。

如果需要使用
new
,可以使用
[]
定义函数:

SITENAME.surveys['new'] = ->
  alert "Hello CoffeeScript"
并称之为:

SITENAME.surveys['new']()
演示:

快速查看您的链接表明,您将通过以下方式访问该功能:

controller = 'surveys'
action     = 'new'
SITENAME[controller][action]()

因此,调用什么方法并不重要,因为您始终会通过它们的(字符串)名称引用它们。

如果需要使用
new
,您可以使用
[]
来定义函数:

SITENAME.surveys['new'] = ->
  alert "Hello CoffeeScript"
并称之为:

SITENAME.surveys['new']()
演示:

快速查看您的链接表明,您将通过以下方式访问该功能:

controller = 'surveys'
action     = 'new'
SITENAME[controller][action]()
因此,调用什么方法并不重要,因为无论如何,您总是通过它们的(字符串)名称来引用它们