次のコード (msdn から) は、'bind' 関数の単純な実装です。
/* 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 への最初の呼び出しを説明できる人はいますか? 引数は配列ではなく、スライスと連結を使用する前に配列に変換する必要があることを理解しています。最初の呼び出しがわかりません - 呼び出し時に最初の要素を失っていませんか
Array.prototype.slice.call(arguments, 1)?