javascript - 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 作为参数传递我是说函数正在等待最多一个参数(第一个被传递)?
解决方案
第一个参数bind()
是this
调用函数时将提供的上下文。由于您的函数不使用this
,因此在您的示例中简单地忽略了此参数。
剩余的参数被插入到参数列表的前面,然后是传递给绑定函数的任何参数。所以当你打电话
adderFive(41, 1)
相当于调用
adder(5, 41, 1)
adder
仅使用前两个参数,因此返回5 + 41
.
推荐阅读
- python - 如何使用 python-docx 制作表格的单元格边框
- r - 从 XYZ 创建栅格时出现警告:附加列有问题?
- facebook - 有没有通过 Facebook Marketing API 付款的方法?
- r - 按唯一 ID 填写组的缺失数据
- javascript - nodejs 查询的问题。我不能将“+”作为查询传递
- ruby - 获取给定目录中文件列表的更好方法
- html - HTML/CSS - 在图像顶部居中移动文本段落时遇到问题
- python - Pulp 如何处理这些限制?
- mysql - 将列拆分为多列mysql
- angular - 寻找一个可以使用 Angular(8) 绘制矩形并在屏幕上移动的简单组件