JavaScript では、関数を定義する 2 つの主な方法、アロー関数と通常の関数を提供します。一見すると似ているように見えますが、コードの実行方法や構造に影響を与える重要な違いがいくつかあります。各タイプをいつ使用するかをよりよく理解できるように、これらの違いを詳しく見てみましょう。
構文の違い
アロー関数は短く、 => を使用します。シンボル。通常の関数と比較すると次のようになります。
// Regular function function add(a, b) { return a + b; } // Arrow function const add = (a, b) => a + b;
アロー関数を使用すると、単一の式を返す場合に return キーワードをスキップできます。このため、アロー関数はより短く単純な関数として人気があります。
このバインディング
通常の関数では、関数を呼び出すオブジェクトを指します。ただし、アロー関数には独自の this コンテキストがありません。代わりに、定義されている周囲のコードからこれを継承します。
この違いが動作にどのような影響を与えるかを示す例を次に示します。
const object = { name: 'JavaScript', regularFunction: function() { console.log(this.name); // 'JavaScript' }, arrowFunction: () => { console.log(this.name); // undefined } }; obj.regularFunction(); // 'JavaScript' obj.arrowFunction(); // undefined
これは、関数をイベント リスナーに渡すときに役立つかもしれません。見てください:
document.querySelector('button').addEventListener('click', function() { console.log(this); // refers to the button element! });
引数オブジェクト
通常の関数は、関数に渡されるすべての引数を保持する引数オブジェクトにアクセスできます。アロー関数にはこれがありません。代わりに残りのパラメータ ...args を使用します。
// regular function with arguments function sum() { return Array.from(arguments).reduce((a, b) => a + b); } // arrow function with rest parameters const sum = (...args) => args.reduce((a, b) => a + b);
コールバックでの使用法
アロー関数は、特にコールバックを必要とするもの、たとえば Promise や .map() や .filter() などの配列メソッドを処理する場合に、コードを簡素化できます。
// using arrow functions in array methods const numbers = [1, 2, 3]; const squares = numbers.map(number => number * n); // [1, 4, 9]
アロー関数と通常の関数をいつ使用するか
一般に、アロー関数は次の場合に適しています。
- 配列メソッドやコールバックのような短くて簡潔な関数
- クラスメソッドやクロージャなど、一貫性を保つ必要がある状況
通常の関数は次の場合に役立ちます。
- オブジェクト メソッドやイベント リスナーなど、特定の this バインディングが必要です
- 残りのパラメータを定義せずに引数オブジェクトを使用したい
ここで興味深いことに注目してみましょう。ご覧のとおり、違いは非常に微妙です。ほとんどの場合、コードベースで this または引数を頻繁に使用しない限り (可能性は低いですが)、どちらを選択しても問題ありません。
肝心なのは、好きな方を選択し、プロジェクト全体で一貫性を保つだけです。
このアプローチに同意しますか?
以上がJavaScript におけるアロー関数と通常の関数。どちらを使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

このチュートリアルでは、カスタムGoogle検索APIをブログまたはWebサイトに統合する方法を示し、標準のWordPressテーマ検索関数よりも洗練された検索エクスペリエンスを提供します。 驚くほど簡単です!検索をyに制限することができます

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

この記事シリーズは、2017年半ばに最新の情報と新鮮な例で書き直されました。 このJSONの例では、JSON形式を使用してファイルに単純な値を保存する方法について説明します。 キー価値ペア表記を使用して、あらゆる種類を保存できます

楽なWebページレイアウトのためにjQueryを活用する:8本質的なプラグイン jQueryは、Webページのレイアウトを大幅に簡素化します。 この記事では、プロセスを合理化する8つの強力なjQueryプラグイン、特に手動のウェブサイトの作成に役立ちます

コアポイント これは通常、メソッドを「所有」するオブジェクトを指しますが、関数がどのように呼び出されるかに依存します。 現在のオブジェクトがない場合、これはグローバルオブジェクトを指します。 Webブラウザでは、ウィンドウで表されます。 関数を呼び出すと、これはグローバルオブジェクトを維持しますが、オブジェクトコンストラクターまたはそのメソッドを呼び出すとき、これはオブジェクトのインスタンスを指します。 call()、apply()、bind()などのメソッドを使用して、このコンテキストを変更できます。これらのメソッドは、与えられたこの値とパラメーターを使用して関数を呼び出します。 JavaScriptは優れたプログラミング言語です。数年前、この文はそうでした

jQueryは素晴らしいJavaScriptフレームワークです。ただし、他のライブラリと同様に、何が起こっているのかを発見するためにフードの下に入る必要がある場合があります。おそらく、バグをトレースしているか、jQueryが特定のUIをどのように達成するかに興味があるからです

この投稿は、Android、BlackBerry、およびiPhoneアプリ開発用の有用なチートシート、リファレンスガイド、クイックレシピ、コードスニペットをコンパイルします。 開発者がいないべきではありません! タッチジェスチャーリファレンスガイド(PDF) Desigの貴重なリソース


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません
