私はそれがarguments
実際の配列ではないことを除いて、関数内が配列のようなものであることは古いJavascriptの動作だと思います(Crockfordはそれは設計エラーだと言いました)。
function foo() { console.log(arguments.slice(1)) } // won't work
foo(1,2,3);
最新の Firefox と Chrome で試してみましたが、どちらでも動作しません。したがって、使用する必要があるかもしれません
function foo() { console.log(Array.prototype.slice.call(arguments, 1)) }
foo(1,2,3);
しかしarguments
、最新の JavaScript で実際の配列を作成してみませんか? arguments
実際の配列ではないことに依存するプログラムはおそらくないはずですか? 現在、実際の配列にしない理由は何でしょうか?
私が考えることができる理由の 1 つは、プログラマーが配列として扱い始めると、そのコードは古いブラウザーでは機能しなくなりますが、ECMA-5 には古いブラウザーでも機能しないものがあります。