10
最近NodeJSとJavascriptコードをたくさん見ると、引数がArrayのインスタンスではないように見えますが、人々はArray.prototype.slice.call(arguments, ...)
または[].slice.call(arguments)
のようなものをやっていて、初心者の理解を妨げています。引数がArrayのインスタンスでない理由、またはこれがちょうどその悪い部分ですか?なぜJavascript関数 `arguments`はnode.jsのArrayのインスタンスではありませんか?
私はそれが.calleeなどの追加のプロパティを持っていることを知っていますが、理想的な世界では、プロトタイプをArrayに指摘してはいけません。それでスプライス/スライスが直接その上にあります。私はJSの開発者を撃つことなく、私の理解を明確にするためだけに、誰かが回り、x/y/z(根本的な誤解など)のために自分のアイデアが遅れていると言うでしょう。 –
@mattcodeはい、それ。 JSにはたくさんの欠点があり、これもその一つです。 –
'arguments [0]'などにも代入しないでください。 'arguments [0]'は*あなたの最初の仮パラメータとまったく同じ*です。どちらか一方を変更すると、もう一方も変わります。 –