如何在javascript中将函数作为参数调用

时间:2016-07-13 20:31:16

标签: javascript lambda

我正在学习javascript,我想知道是否可以使用lambda函数这样的东西

function operation (function f, num1, num2){
    f.call(num1, num2);
}
operation((a,b)=>{return a+b}, 2,3);

我在第1行有意外的令牌功能,对于功能f 我想,有没有办法让这项工作以某种方式进行?

3 个答案:

答案 0 :(得分:3)

试试这个:

function operation (f, num1, num2){
    f(num1, num2);
}
operation((a,b)=>{return a+b}, 2,3);

JavaScript是无类型语言。如果您想使用call,请尝试以下操作:

function operation (f, num1, num2){
    f.call(this, num1, num2);
}
operation((a,b)=>{return a+b}, 2,3);

答案 1 :(得分:1)

JavaScript函数参数定义没有类型。从第1行的function之前删除关键字f

答案 2 :(得分:0)

是的,只需删除function

function operation (function f, num1, num2){
  f.call(num1, num2);
}
operation((a,b)=>{return a+b}, 2,3);

但是,这会使用this - 上下文num1和第一个参数num2调用您的函数。如果您想在不覆盖this上下文的情况下调用该函数,只需使用()调用它:

f(num1, num2)