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)也是可以得,这种写法怎么理解?
1
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 操作后的结果值 ,显然不是一个函数类型参数
|
2
Alexisused OP @palmers 豁然开朗 谢谢
|