在liveScript中将函数作为参数传递的正确方法是什么?
例如,假设我想使用数组还原函数,在传统的javascript中,我会将它写成如下所示
myArray.reduce(function (a,b) {return a + b});这很好地转化为liveScript,如下所示:
myArray.reduce (a,b) -> a + b现在,我希望通过提供第二个参数来设置初始值:
myArray.reduce(function (a,b) {return a + b},5);我如何把它翻译成liveScript呢?第一个函数似乎覆盖了传递附加参数以减少的能力。
很抱歉,如果我错过了一些显而易见的东西,但我似乎在文档中找不到与此场景有关的任何内容。
发布于 2015-12-07 17:40:19
您必须用()包装闭包
[1,2,3].reduce ((a,b) -> a + b), 0编译成
[1, 2, 3].reduce(function(a, b){
return a + b;
}, 0);发布于 2015-12-24 08:25:30
对于更复杂的函数,我建议您使用这种样式
[1, 2, 3].reduce do
(a, b) ->
# your code here
0发布于 2015-12-25 12:38:41
可以使用~绑定this参数,然后对其调用flip以交换第一个和第二个参数:
flip [1, 2, 3]~reduce, 0, (a, b) -> a + b如果回调体很长,这可能更易读。
https://stackoverflow.com/questions/34139704
复制相似问题