是否可以创建一个与另一个函数相等但带有预先给定的参数的函数。类似的东西
function f(x){
return x
}
var f2 = //f(2);
console.log(f2()); //Should print 2
我知道这在OcamL中是有可能的,所以我想知道我是否可以在JS中做到这一点。另一种方法是进行
var f2 = function(){f(2)};
f2();
但我不知道这有多违法,也不知道我是否应该害怕入狱。
选项1-创建一个包装函数,返回用2
调用f()
的结果。
function f(x){
return x
}
var f2 = () => f(2);
console.log(f2()); //Should print 2
选项2-使用带有前置参数的Function.bind()
:
function f(x){
return x
}
var f2 = f.bind(null, 2);
console.log(f2()); //Should print 2
只需使f2
成为用任何您想要的方法调用f
的函数,然后返回对f
:的调用结果
var f2 = function() {
return f(2);
};
您需要在函数中创建一个函数。
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());