ES6 Arrow Functions の Arguments オブジェクト: 公式ドキュメント
Arrow 関数は、その簡潔な構文ですぐに開発者の注目を集めました。ただし、疑問が生じている点の 1 つは、その中での引数オブジェクトの可用性です。
JavaScript 標準化の管理団体である TC39 の公式ドキュメントによると、アロー関数は独自の引数を作成しません。オブジェクト。通常の関数とは異なり、アロー関数は親スコープから引数オブジェクトを継承します。
この動作は、アロー関数が 3 つの引数で呼び出される次の例で明らかです。
<code class="js">(() => console.log(arguments))(1, 2, 3);</code>
環境内Chrome、Firefox、Node.js と同様に、このコードは「1,2,3」をログに記録します。ただし、Babel および他のバンドラーは、引数が定義されていないことを示すエラーを生成します。
この矛盾は、一部の環境ではアロー関数が親スコープの引数オブジェクトにアクセスできるのに対し、他の環境では ES6 の厳密な解釈が実装されているために発生します。この仕様では、アロー関数が独自の引数オブジェクトを持つことを禁止しています。
要約すると、TC39 の公式ドキュメント (ES6 仕様) には、アロー関数が独自の引数オブジェクトを持たないことが明確に記載されています。アロー関数が親スコープの引数にアクセスできる特定の環境で観察される動作は標準的ではなく、予期しない結果が生じる可能性があります。
以上がES6 Arrow Functions で Arguments オブジェクトはいつ使用できるようになりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。