ホームページ  >  記事  >  ウェブフロントエンド  >  ES6 のアロー関数は引数オブジェクトにアクセスできますか?

ES6 のアロー関数は引数オブジェクトにアクセスできますか?

DDD
DDDオリジナル
2024-10-18 15:55:03504ブラウズ

Do Arrow Functions in ES6 Have Access to Arguments Objects?

ES6 アロー関数の引数に関する公式ドキュメント

ES6 の領域では、アロー関数は引数の処理に関する議論を引き起こしました。キーワード。初期の TC39 の推奨に反して、Chrome、Firefox、Node.js などのブラウザ エンジンでは、アロー関数による引数オブジェクトへのアクセスが許可されているようです。

しかし、人気のある JavaScript トランスパイラである Babel は、初期の TC39 のスタンスに従い、この動作を禁止します。この矛盾により、開発者は曖昧さを解決するための公式ドキュメントを求めています。

[ECMAScript 2015 言語仕様](https://www.ecma-international.org/ecma-262/6.0/#sec-)によると、アロー関数定義)、アロー関数には独自の引数バインディングがありません。アロー関数を呼び出す場合、引数オブジェクトは作成されません。

具体的には、仕様では次のように述べられています。

  • 「アロー関数は、スコープ内に独自の引数バインディングを持たず、引数オブジェクトもありません」呼び出し時に作成されます。」 (14.8.1)
  • 「アロー関数式は、[[ThisMode]] が字句に設定されている関数として評価されます。」 (14.2.16.1)
  • 「そのような関数が呼び出された場合、宣言のインスタンス化では引数オブジェクトは作成されません。」 (14.2.16.1)
  • 「『アロー関数には引数オブジェクトが存在しない』という特定の注記 (18 a) もあります。」 (14.2.16.1)

Basedこれらの公式文書によれば、Babel の動作が正しく、アロー関数がスコープ内の引数オブ​​ジェクトにアクセスすべきではないことは明らかです。

以上がES6 のアロー関数は引数オブジェクトにアクセスできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。