[JS関数]即時実行関数

4990 ワード

インスタント実行関数(IIFE)


インスタント実行関数表現(IIFE)とは、インスタント暗黙機能式として定義された直後に実行されるJavaScript関数のことである.
(function() {
  var aName = "Barry";
})(매개변수);
関数をカッコ内で実行します.

1.即時実行関数のフォーマット


匿名関数を括弧で囲み、括弧の後ろに括弧を開いて閉じます.次のように、関数の名前を作成することなく、2つのカッコで関数をすぐに実行できます.(함수)()
(function () {
  console.log(a * 2)
})();
また、カッコを使用して匿名関数を囲み、後カッコの前にカッコを付け、後カッコの前にカッコを付けて合成することもできます.(함수())
(function () {
  console.log(a * 2)
}());
※注意点
下図に示すようにjavascriptエンジンでは即時実行関数と通常関数を明確に区別できないため、;で区別する必要があります.
const a = 7
function double() {
  console.log(a * 2)
}
double(); //반드시 ;를 붙여구분

(function () {
  console.log(a * 2)
})();

2.IIFEのメリット


利点1:空間を完全に隔離する。


空間()を完全に分離できるため、()に新しいスキャンを明確に作成することができます.ブロックスキャンを真似た新しいスキャンをしていると思ったら、簡単に理解できます.
ただし、インスタント実行関数を使用する場合は、前または後ろにある必要があります.貼らなければならない注意点
(連続して実行すると、すぐに関数が実行され、使用されない場合は貼り付けられます.貼り付けられた場合は実行されません.)
スキャンが心配な場合は、インスタント実行関数を使用してみることもできます.

利点2:隠したいデータを入れるときに便利です。

(function(num) {
  var privaeData='secret'
})(1)

の最後の部分


インスタント実行関数の動作原理は、将来学習する「Close」という関数の使用方法と似ています.今よく理解していれば、Closeの理解にも役立ちます.