我正在学习javascript,我想知道是否可以使用lambda函数这样的东西
function operation (function f, num1, num2){
f.call(num1, num2);
}
operation((a,b)=>{return a+b}, 2,3);
我在第1行有意外的令牌功能,对于功能f 我想,有没有办法让这项工作以某种方式进行?
答案 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)