我想要javascript代码
someFunction(42, function onSuccess() {}, function onFailure() {})
请注意,在定义onSuccess和onFailure时,我想命名它们(不是因为它是必要的,而是因为它记录了代码)。但是,我无法获得coffeescript来生成此代码。
对于匿名函数传递我可以做
someFunction(42,
->
// onsuccess code
->
// onfailure code
)
但是当我试图给这些函数命名时,它没有按预期转换为Javascript
someFunction(42,
onSuccess : ->
// onsuccess code
onFailure : ->
// onfailure code
)
转换为
someFunction(42, { onSuccess : function () {}, onFailure : function () {} })
另一次尝试
someFunction(42,
onSuccess ->
// onsuccess code
onFailure ->
// onfailure code
)
转换为
someFunction(42, onSuccess(function () {}), onFailure(function () {}))
我该怎么做?
答案 0 :(得分:1)
这有用吗?
someFunction 42, (onSuccess = -> ), onFailure = ->
http://jsfiddle.net/keith_nicholas/Qdzph/
生成..
somefunction(42, (onSuccess = function() {}), onFailure = function() {});
另外,这可能是有意义的http://kangax.github.com/nfe/
并且,在coffeescript faq中,它讨论了为什么你不能生成命名函数: -
答案 1 :(得分:1)
在CoffeeScript中创建命名函数的唯一方法是使用class
:
someFunction 42,
class onSuccess
constructor: ->
class onFailure
constructor: ->