検索
ホームページよくある問題アロー関数と通常の関数の違い

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

Sep 13, 2023 am 09:32 AM
アロー関数通常の関数

アロー関数と通常の関数の違いは、主に構文の単純さ、この点の違い、コンストラクターには適用できないこと、引数オブジェクトがないことなどです。詳細な紹介: 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 サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。