アロー関数と通常の関数の違い

百草
リリース: 2023-09-13 09:32:21
オリジナル
2288 人が閲覧しました

アロー関数と通常の関数の違いは、主に構文の単純さ、この点の違い、コンストラクターには適用できないこと、引数オブジェクトがないことなどです。詳細な紹介: 1. 構文の単純さ. アロー関数の構文は通常の関数よりも簡潔です. アロー関数は矢印を使用して定義できます. 関数キーワードと中括弧は省略され、関数のパラメータと戻り値は省略されますアロー関数は、パラメータが 1 つだけの場合、括弧を省略することもできます; 2. これは異なるポイントを指します。

アロー関数と通常の関数の違い

アロー関数と通常関数は、JavaScript で関数を定義する 2 つの方法です。構文と機能にいくつかの違いがあります。ここではアロー関数と通常の関数の違いを詳しく紹介していきます。

1. 構文の単純さ:

アロー関数の構文は、通常の関数の構文よりも簡潔です。アロー関数は矢印(=>)を使用して定義でき、関数キーワードや中括弧を省略し、関数のパラメータや戻り値を直接定義できます。例:

   // 普通函数
   function regularFunc(a, b) {
     return a + b;
   }
   
   // 箭头函数
   const arrowFunc = (a, b) => a + b;
ログイン後にコピー

アロー関数では、パラメータが 1 つしかない場合、括弧を省略することもできます。例:

   // 普通函数
   function regularFunc(a) {
     return a * 2;
   }
   
   // 箭头函数
   const arrowFunc = a => a * 2;
ログイン後にコピー

2. これが指す点が異なります:

通常の関数では、this の値は関数が呼び出されたときに決定され、関数を呼び出すオブジェクトを指します。関数。アロー関数では、this の値は関数の定義時に決定され、アロー関数が定義されているコンテキストを指します。これは、アロー関数が独自の this を持たず、親スコープの this を継承することを意味します。例:

   // 普通函数
   const obj = {
     name: 'Alice',
     regularFunc: function() {
       console.log(this.name);
     }
   };
   obj.regularFunc(); // 输出:Alice
   
   // 箭头函数
   const obj = {
     name: 'Alice',
     arrowFunc: () => {
       console.log(this.name);
     }
   };
   obj.arrowFunc(); // 输出:undefined
ログイン後にコピー

アロー関数では、これはアロー関数を呼び出すオブジェクトではなく、アロー関数が定義されているコンテキストを指します。

3. コンストラクターには適用できません:

アロー関数はコンストラクターとして使用できず、new キーワードを使用してオブジェクトをインスタンス化することもできません。通常の関数をコンストラクターとして使用でき、new キーワードを使用してオブジェクト インスタンスを作成できます。例:

   // 普通函数
   function RegularConstructor() {
     this.name = 'Alice';
   }
   const regularObj = new RegularConstructor();
   
   // 箭头函数
   const ArrowConstructor = () => {
     this.name = 'Alice';
   };
   const arrowObj = new ArrowConstructor(); // 报错:ArrowConstructor is not a constructor
ログイン後にコピー

4. 引数オブジェクトなし:

通常の関数では、引数オブジェクトを使用して、配列のようなオブジェクトであるすべての受信パラメータにアクセスできます。アロー関数は独自の引数オブ​​ジェクトを持たず、親スコープの引数オブ​​ジェクトを継承します。例:

   // 普通函数
   function regularFunc() {
     console.log(arguments[0]);
   }
   regularFunc(1, 2, 3); // 输出:1
   
   // 箭头函数
   const arrowFunc = () => {
     console.log(arguments[0]);
   };
   arrowFunc(1, 2, 3); // 报错:arguments is not defined
ログイン後にコピー

要約すると、アロー関数と通常の関数の文法の違いは、主に単純さとこの指示に反映されます。アロー関数の構文はより簡潔ですが、コンストラクターとして使用できず、独自の this オブジェクトと argument オブジェクトを持ちません。通常の関数の構文は比較的複雑ですが、コンストラクターとして使用でき、独自の this オブジェクトと argument オブジェクトを持ちます。実際の使用では、特定のニーズに応じて適切な関数定義方法を選択できます。

以上がアロー関数と通常の関数の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!