是否可以创建一个与另一个函数相同但带有预定参数的函数。 像
function f(x){
return x
}
var f2 = //f(2);
console.log(f2()); //Should print 2
我知道这在OcamL中是可能的,所以我想知道我是否可以在JS中做到这一点。 另一种方法是
var f2 = function(){f(2)};
f2();
但是我不知道那是多么非法,以及我是否应该惧怕监狱。
答案 0 :(得分:3)
选项1 -创建一个包装函数,该函数返回使用f()
调用2
的结果。
function f(x){
return x
}
var f2 = () => f(2);
console.log(f2()); //Should print 2
选项2 -将Function.bind()
与prepended arguments结合使用:
function f(x){
return x
}
var f2 = f.bind(null, 2);
console.log(f2()); //Should print 2
答案 1 :(得分:1)
只需使f2
为一个函数即可调用 f
,然后返回该调用的结果f
:
var f2 = function() {
return f(2);
};
答案 2 :(得分:0)
您将要在函数内创建一个函数。
function f(x)
{
return function() {
return x;
};
}
var f2 = f(2),
f3 = f(3),
f4 = f(4);
console.log("f2: " + f2());
console.log("f3: " + f3());
console.log("f4: " + f4());