让我们说我有这个功能:
function toy(input) {
return input + 1;
}
Run Code Online (Sandbox Code Playgroud)
我想基本上生成一个函数,通过将3绑定到输入来打印4.所以我可以调用类似fn()的东西,它会打印4.
所以我试着这样做:
var fn = toy.bind(3);
Run Code Online (Sandbox Code Playgroud)
然后当我执行fn()时,我没有得到4.
我是否需要使用'this'才能使这项工作/有没有办法在没有绑定的情况下做到这一点?
传递给的第一个参数.bind()用作this被调用函数.传递给被调用函数的第一个参数是传递给的第二个参数.bind().如果有的话,你可以使用有意义的this绑定,或者只是null在函数忽略时使用this:
var fn = toy.bind(null, 3);
Run Code Online (Sandbox Code Playgroud)