下面的一段代碼(從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)?
確定澄清了一下。然而,爲什麼需要用fn.apply中的參數來連接參數?我會認爲一旦我們創建了我們的args變量,我們就會通過它來應用。 –
@Joel_Blum我在最後一部分和代碼中解釋了它。 – Joseph