首页 > 解决方案 > null 是否在绑定函数中设置默认参数,使用 JS 绑定?

问题描述

观察这段代码:

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 作为参数传递我是说函数正在等待最多一个参数(第一个被传递)?

标签: javascriptfunctionfunctional-programmingbind

解决方案


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

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

adderFive(41, 1)

相当于调用

adder(5, 41, 1)

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


推荐阅读