ホームページ  >  記事  >  ウェブフロントエンド  >  ES6 でアロー関数は独自の引数オブ​​ジェクトを作成できますか?

ES6 でアロー関数は独自の引数オブ​​ジェクトを作成できますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-18 15:54:03401ブラウズ

Can Arrow Functions Create Their Own Arguments Object in ES6?

ES6 アロー関数: 引数の使用法の明確化

ES6 アロー関数での引数の使用法に関して、実装が競合しているため混乱が生じています。主要なブラウザと Babel。この記事は、この問題に関する公式の立場を明確にすることを目的としています。

動作の異常

アロー関数では、引数は親スコープから値を継承する必要があります。ただし、Chrome、Firefox、Node などのブラウザはこの原則に違反し、アロー関数が独自の引数オブ​​ジェクトを作成できるようにします。

公式ドキュメント

公式 ECMA-262 仕様(ES6) は、「指定されたステートメント、アロー関数は、スコープ内にバインディングする独自の引数を持たない。呼び出し時に引数オブジェクトは作成されない。」と明示的に述べています。これは、アロー関数が引数にアクセスするために親スコープのみに依存する必要があることを意味します。

ブラウザ実装

公式仕様にもかかわらず、Chrome、Firefox、Node は次のことを選択しています。このルールは無視されますが、バベルはそれを遵守します。これにより、次の矛盾が生じます。

  • ブラウザ: 引数はアロー関数内で使用でき、独自のスコープから派生します。
  • Babel: 引数はアロー関数内で使用できず、「」が発生します。引数が定義されていません」エラー。

正しい使用法

混乱を避け、異なる環境間での互換性を確保するには、公式仕様に従うことが重要です。アロー関数は独自の引数オブ​​ジェクトを持つべきではなく、アロー関数内の引数への参照は親スコープを参照する必要があります。

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

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