我正在阅读有关bind()javascript函数的一些文档.
其中一个例子开头是这样的:
function list() {
return Array.prototype.slice.call(arguments);
}
var list1 = list(1, 2, 3); // [1, 2, 3]
// Create a function with a preset leading argument
var leadingZeroList = list.bind(undefined, 37);
var list2 = leadingZeroList(); // [37]
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
究竟是什么意思传递(undefined, 37)到bind()这里?
Poi*_*nty 15
这意味着您不希望this在结果绑定函数中引用任何内容.换句话说,它确保当你调用绑定函数时,this将会undefined.究竟为什么你这样做当然取决于代码; 许多功能都不使用,this所以它是一种整洁的方式.
请注意,在非严格模式,它可以是运行时将替代全局对象(的情况下window可在浏览器)undefined,但我找不到任何规范,规定该行为.在严格模式下,不执行这样的替换.