以下代码(来自 msdn)是“绑定”函数的简单实现:
/* Approximation of `Function.prototype.bind` from ES5 (without error checking) */
Function.prototype.bind = function(thisArg) {
var fn = this, args = *Array.prototype.slice.call(arguments, 1)*;
return function() {
return fn.apply(thisArg, args.concat(*Array.prototype.slice.call(arguments, 0)*));
};
};
谁能解释对 Array.prototype.slice.call 的第一次调用?我知道参数不是数组,在使用 slice 和 concat 之前需要将其转换为数组。我不明白第一个电话 - 我们不是在打电话时失去了第一个元素
Array.prototype.slice.call(arguments, 1)?