从另一个线程我发现这个关于基于标记的JS执行的精彩教程 Garber-Irish解决方案:
http://www.viget.com/inspire/extending-paul-irishs-comprehensive-dom-ready-execution/
我正在查看我如何在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的新手,现在正在做一个codchool.com课程。 我想“new”关键字对于coffeescript来说是特殊的。
有没有解决方法呢?
谢谢!
答案 0 :(得分:2)
new
在JavaScript中很特别,CoffeeScript知道这一点,所以即使使用保留关键字命名方法也是不好的做法,它会发出实际可行的代码。
答案 1 :(得分:2)
如果您需要使用new
,可以使用[]
来定义该功能:
SITENAME.surveys['new'] = ->
alert "Hello CoffeeScript"
并称之为:
SITENAME.surveys['new']()
演示:http://jsfiddle.net/ambiguous/Y3qnt/
快速查看您的链接表明您将使用以下内容访问该功能:
controller = 'surveys'
action = 'new'
SITENAME[controller][action]()
所以调用这些方法无关紧要,因为无论如何你总是用它们的(字符串)名称来引用它们。