JS function 作为参数,写法的疑惑

2016-09-05 16:16:07 +08:00
 Alexisused
function add(x, y) {
  return x + y;
}

// 将函数赋值给一个变量
var operator = add;

// 将函数作为参数和返回值
function a(op){
  return op;
}
a(add)(1, 1)

最后调用时,按正常写法不是应该这样写吗: a(add(1, 1))? 为什么写成 a(add)(1, 1)也是可以得,这种写法怎么理解?

2501 次点击
所在节点    JavaScript
2 条回复
palmers
2016-09-05 16:31:27 +08:00
一般我调用函数都是 a(arg) ; add 函数由函数 a 返回,那 a(add) 不省略的就是 var fun = a(add) ; 然后 fun(1,1) 所以 才是 a(add)(1,1) ; a(add(1,1)) 这里传递给函数 a 函数就不是函数 add 了 而是 add 操作后的结果值 ,显然不是一个函数类型参数
Alexisused
2016-09-05 17:03:25 +08:00
@palmers 豁然开朗 谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/304066

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX