ホームページ > 記事 > ウェブフロントエンド > JavaScript の匿名関数とアロー関数を詳しく見る
JavaScript では、関数は第一級市民であり、変数と同じように渡し、保存、呼び出しができることを意味します。匿名関数とアロー関数は、JavaScript でよく使用される 2 つの関数形式です。
匿名関数は名前のない関数であり、通常は関数式を通じて宣言されます。これは宣言時に作成されますが、宣言の場所でのみ使用できます。匿名関数は、関数パラメーターとして直接渡すことも、呼び出し可能な変数として保存することもできます。
たとえば、次の匿名関数を使用して即時実行関数を作成できます:
(function () { console.log('立即执行函数。'); })();
(function () {})()
コード内のanonymous メッセージを出力するコード ブロックを含む関数。これは、即時実行関数を作成するために使用されます。つまり、宣言後すぐに実行されます。この関数はグローバル名を必要としないため、匿名関数として宣言できます。
匿名関数と比較すると、アロー関数は ES6 の新機能です。アロー関数は関数を宣言する簡単な方法で、=>
記号を使用してパラメータ リストと関数本体を接続します。アロー関数は式の値を直接返すことができます。
次は、アロー関数を使用してメッセージを出力する方法を示す簡単な例です:
const printMessage = message => console.log(`信息为: ${message}`); printMessage('Hello World!');
const printMessage = message => console.log(
The情報は次のとおりです: ${message});
は、パラメータ message
を受け取り、このパラメータをコンソールに出力するアロー関数を表します。次に、このアロー関数を変数 printMessage
に保存し、それを使用してメッセージを出力します。
もう 1 つの違いは、アロー関数では、this
のスコープが、その関数が実行されるコンテキストではなく、その関数が定義されているコンテキストであることです。このため、アロー関数を使用する場合、一部の特殊なケース (動的バインディング コンテキストが必要な場合など) では、this
が期待どおりに動作しません。この場合、匿名関数を使用する方が便利な場合があります。
これは、オブジェクト リテラルでアロー関数を使用すると、this
のコンテキストが正しくなくなる典型的な例です:
const person = { name: 'John Doe', getName: () => { console.log(this.name); // undefined } }; person.getName();
ここでは、プロパティ ## を含むオブジェクトを定義します。 #name とメソッド
getName。
getName メソッドは、
this.name の値を出力しようとするアロー関数です。ただし、アロー関数は、それを含む関数が定義されているコンテキストを使用するため、
this.name の値は
unknown です。この場合、匿名関数を使用する方が良いでしょう。
const person = { name: 'John Doe', getName: function () { console.log(this.name); // John Doe } }; person.getName();ここでは、アロー関数を匿名関数に変換するだけです。この関数は通常の関数コンテキストを使用するため、
this.name の値は正しい値です。
以上がJavaScript の匿名関数とアロー関数を詳しく見るの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。