给定Function.prototype.bind()的这里的一种用法
bind()的下一个最简单的用法是使用预先指定的初始参数创建一个函数。这些参数(如果有的话)遵循提供的此值,然后在传递给目标函数的参数开始时插入,然后在调用绑定函数时再插入传递给绑定函数的参数。
问题:为什么未定义的被绑定在这里?应该是这个本应发送的上下文。如果同样的情况发生在这里,那么未定义的对象是怎样的呢?
var leadingThirtysevenList = list.bind(undefined, 37);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 leadingThirtysevenList = list.bind(undefined, 37);
var list2 = leadingThirtysevenList(); // [37]
var list3 = leadingThirtysevenList(1, 2, 3); // [37, 1, 2, 3]发布于 2016-02-15 15:27:00
为什么不明确地被绑在这里?
因为this在list中的值并不重要(因为list从来没有引用过this),但是为了指定参数1,您必须将参数0指定为某个参数。
如何定义未定义的对象?
因为JavaScript将其定义为这样。
https://stackoverflow.com/questions/35413032
复制相似问题