Fabric.jsのソースコードを読んでJavascriptを学ぼうとしています。
ファイルutil/lang_array.js
には、次のようなメソッドがあります。
var slice = Array.prototype.slice;
function invoke(array, method) {
var args = slice.call(arguments, 2), result = [ ];
for (var i = 0, len = array.length; i < len; i++) {
result[i] = args.length ? array[i][method].apply(array[i], args) : array[i][method].call(array[i]);
}
return result;
}
私はその声明を理解していませんvar args = slice.call(arguments, 2)
。私を困惑させる特定の部分は2
、2番目の引数として渡されています(その場合はそうあるべきだと考えていますarguments
)。JSリファレンスを調べたところ、基本的にargsを空の配列に初期化するという結論に達しました。[array, method]
arguments[2]
null
では、なぜ単純ではないのですvar args = []
か?
ありがとう。