我很困惑为什么我们需要做这样的事情?
例如:
function firstFunction ( x , secondFunction){
var z = x*x ;
y = secondFunction(z);
return y;
}
我来自java和java中没有必要将函数作为参数传递而是我们在第一个函数的主体中使用此函数到处需要...甚至更糟糕的是为什么作为参数我们应该定义一个函数? 像这样:
function firstFunction (x , secondFunction(){
// some computation
return z;
};){
retrun x
}
这很难理解,当我第一次看到这样的东西时,我只是想知道如何做到这一点是合法的......我错了吗?
答案 0 :(得分:3)
(太长时间没有合理的评论。)
您不能通过Java传递函数,因为无法(直到Java 8)。
而是传递接口的实现,比如比较器。在JavaScript中,您使用sort
方法执行相同的操作,但只传递比较函数 - 您不需要该类,只需要实际完成工作的内容。
您还可以使用函数引用进行回调,例如异步调用或事件处理程序:再次,就像在Java中一样,但在Java中,您必须传递可以实例化的类,或现有类的实例。
答案 1 :(得分:2)
为什么要在javascript中将函数作为参数传递?有什么意义?
我想到的一个可能的情况是,您可以控制开发人员根据他们的期望改变最终结果。这就是许多核心功能在javascript中运行的方式。
例如:
combs = list(combinations(t2, 2))
print("List of combinations of t2: %r" % combs)
print("List of combinations of t2: %r" % combs)