ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の即時呼び出し関数式 (IIFE) をマスターする
即時呼び出し関数式 (IIFE) は、関数の定義と作成直後の実行を含む JavaScript の設計パターンです。このパターンは、変数のスコープを設定し、グローバル名前空間の汚染を回避するのに役立ち、最新の JavaScript 開発における強力なツールになります。
IIFE は、定義されてすぐに呼び出される関数です。これは、関数を括弧で囲み、最後に括弧を追加して関数を呼び出すことで実現されます。
構文:
(function () { // Code here runs immediately. })();
または
(() => { // Code here runs immediately. })();
地球規模変動汚染を避ける
IIFE はプライベート スコープを作成し、関数内で定義された変数がグローバル名前空間に影響を与えないようにします。
カプセル化
外部干渉から保護するために関数内にロジックをカプセル化します。
即時実行
他の場所で関数を明示的に呼び出す必要がなく、コードをすぐに実行する場合に便利です。
初期化ロジック
構成値の設定などの初期化コードのセットアップに最適です。
IIFE は 2 つの形式で記述できます:
(function () { console.log('IIFE is executed immediately!'); })();
(() => { console.log('Arrow function IIFE!'); })();
どちらの形式でも同じ結果が得られます。関数は定義され、すぐに実行されます。
(function () { const message = 'Hello from IIFE!'; console.log(message); })(); // Output: Hello from IIFE!
ここでは、変数メッセージは IIFE スコープに限定されています。
(function (name) { console.log(`Hello, ${name}!`); })('Alice'); // Output: Hello, Alice!
他の関数と同じように、IIFE に引数を渡すことができます。
let counter = (function () { let count = 0; // Private variable return { increment: function () { count++; return count; }, decrement: function () { count--; return count; }, }; })(); console.log(counter.increment()); // 1 console.log(counter.increment()); // 2 console.log(counter.decrement()); // 1
この例では、変数 count は IIFE にプライベートであり、返されたメソッドを介してのみアクセスできます。
IIFE は、ロジックをカプセル化し、特定の機能を公開するモジュールを作成するためによく使用されます。
(function () { // Code here runs immediately. })();
IIFE を使用すると、変数が誤ってホイストされたり、意図しない方法で使用されたりするのを防ぎます。
(() => { // Code here runs immediately. })();
Feature | Regular Functions | IIFE |
---|---|---|
Invocation | Explicit invocation needed. | Automatically invoked. |
Scope | Creates its own scope. | Creates a private scope. |
Global Namespace Impact | Adds variables to global namespace unless scoped. | Does not impact global namespace. |
ES6 の ブロック スコープ変数 (let および const) とモジュールの導入により、IIFE の一部のユースケースがこれらの機能に置き換えられました。ただし、IIFE は、古い JavaScript 環境での 1 回限りの実行や初期化などの特定のパターンに引き続き関連します。
IIFE は、変数のプライバシー、カプセル化、即時実行に役立つ JavaScript の強力で多用途なツールです。新しい代替手段にもかかわらず、IIFE を理解し効果的に使用することは、特に ES6 より前の環境やプロジェクトで作業する場合、JavaScript をマスターするために不可欠です。
こんにちは、アバイ・シン・カタヤットです!
私はフロントエンドとバックエンドの両方のテクノロジーの専門知識を持つフルスタック開発者です。私はさまざまなプログラミング言語やフレームワークを使用して、効率的でスケーラブルでユーザーフレンドリーなアプリケーションを構築しています。
ビジネス用メールアドレス kaashshorts28@gmail.com までお気軽にご連絡ください。
以上がJavaScript の即時呼び出し関数式 (IIFE) をマスターするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。