0

我希望 javascript 代码是

someFunction(42, function onSuccess() {}, function onFailure() {})

请注意,在定义 onSuccess 和 onFailure 时,我想命名它们(不是因为它是必需的,而是因为它记录了代码)。但是,我无法让咖啡脚本生成此代码。

对于匿名函数传递,我可以做

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 () {}))

我该怎么做呢?

4

2 回答 2

1

在 CoffeeScript 中创建命名函数的唯一方法是使用class

someFunction 42,
  class onSuccess
    constructor: ->
  class onFailure
    constructor: ->
于 2012-06-28T03:47:00.583 回答
1

这行得通吗?

someFunction 42, (onSuccess = -> ), onFailure = ->

http://jsfiddle.net/keith_nicholas/Qdzph/

生成..

somefunction(42, (onSuccess = function() {}), onFailure = function() {});

此外,这可能是有趣的http://kangax.github.com/nfe/

而且,在咖啡脚本常见问题解答中,它谈到了为什么不能生成命名函数:-

https://github.com/jashkenas/coffee-script/wiki/FAQ

于 2012-06-28T03:23:21.530 回答