使用JS bind,null是否在绑定函数中设置默认参数?

时间:2020-06-05 21:06:46

标签: javascript function functional-programming bind

观察以下代码:

function adder(a, b) {
  return a + b;
}
const adderFive = adder.bind(null, 5);
let pauloAgeInFuture = adderFive(41, 1) // 

console.log(pauloAgeInFuture); //->46
console.log(adderFive(5, 10)); //->10

第二个参数是否被忽略,因为1)自从使用null以来,我说绑定值(5)是默认的b arg,或2)自从传递5作为自变量以来,我说该函数正在等待还有一个参数(第一个通过)?

1 个答案:

答案 0 :(得分:3)

bind()的第一个参数是调用函数时将提供的this上下文。由于您的函数未使用this,因此在您的示例中将忽略此参数。

其余参数插入到参数列表的最前面,然后是传递给绑定函数的所有参数。所以当你打电话

adderFive(41, 1)

相当于打电话

adder(5, 41, 1)

adder仅使用前两个参数,因此将返回5 + 41

相关问题