首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在livescript中将匿名函数作为参数传递

在livescript中将匿名函数作为参数传递
EN

Stack Overflow用户
提问于 2015-12-07 17:35:12
回答 4查看 144关注 0票数 0

在liveScript中将函数作为参数传递的正确方法是什么?

例如,假设我想使用数组还原函数,在传统的javascript中,我会将它写成如下所示

代码语言:javascript
复制
myArray.reduce(function (a,b) {return a + b});

这很好地转化为liveScript,如下所示:

代码语言:javascript
复制
myArray.reduce (a,b) -> a + b

现在,我希望通过提供第二个参数来设置初始值:

代码语言:javascript
复制
myArray.reduce(function (a,b) {return a + b},5);

我如何把它翻译成liveScript呢?第一个函数似乎覆盖了传递附加参数以减少的能力。

很抱歉,如果我错过了一些显而易见的东西,但我似乎在文档中找不到与此场景有关的任何内容。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-12-07 17:40:19

您必须用()包装闭包

代码语言:javascript
复制
[1,2,3].reduce ((a,b) -> a + b), 0

编译成

代码语言:javascript
复制
[1, 2, 3].reduce(function(a, b){
  return a + b;
}, 0);
票数 1
EN

Stack Overflow用户

发布于 2015-12-24 08:25:30

对于更复杂的函数,我建议您使用这种样式

代码语言:javascript
复制
[1, 2, 3].reduce do
  (a, b) ->
    # your code here
  0
票数 2
EN

Stack Overflow用户

发布于 2015-12-25 12:38:41

可以使用~绑定this参数,然后对其调用flip以交换第一个和第二个参数:

代码语言:javascript
复制
flip [1, 2, 3]~reduce, 0, (a, b) -> a + b

如果回调体很长,这可能更易读。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34139704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档