diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
commit | 33058f2b292b3a581333bdfb21b8f671898c5060 (patch) | |
tree | 51c3e392513ec574331b2d3f85c394445ea803c6 /files/ja/glossary/iife | |
parent | 8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff) | |
download | translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2 translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip |
initial commit
Diffstat (limited to 'files/ja/glossary/iife')
-rw-r--r-- | files/ja/glossary/iife/index.html | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/files/ja/glossary/iife/index.html b/files/ja/glossary/iife/index.html new file mode 100644 index 0000000000..afc9e02e2d --- /dev/null +++ b/files/ja/glossary/iife/index.html @@ -0,0 +1,67 @@ +--- +title: IIFE (即時実行関数式) +slug: Glossary/IIFE +tags: + - CodingScripting + - DesignPattern + - Functions + - Glossary + - JavaScript + - デザインパターン + - 用語集 + - 関数 +translation_of: Glossary/IIFE +--- +<p><strong>IIFE</strong> (Immediately Invoked Function Expression; 即時実行関数式) は定義されるとすぐに実行される {{glossary("JavaScript")}} の {{glossary("function", "関数")}} です。</p> + +<pre class="brush: js">(function () { + 文 +})();</pre> + +<p>このデザインパターンは{{glossary("Self-Executing Anonymous Function", "自己実行無名関数")}}とも呼ばれ、次の2つの主な部分から成ります。</p> + +<ol> + <li>最初の部分は {{jsxref("Operators/Grouping", "グループ化演算子")}} <code>()</code> に囲まれた静的スコープ付きの無名関数です。これは IIFE イディオム内で、汚いグローバルスコープと同様に変数へアクセスすることを防ぎます。</li> + <li>2つ目の部分は即時実行関数式の <code>()</code> で、これを通じて JavaScript エンジンは直接関数を解釈実行します。</li> +</ol> + +<h2 id="Examples" name="Examples">例</h2> + +<p>この関数は即時実行される関数式になります。関数式内の変数は外部からアクセスできません。</p> + +<pre class="brush: js">(function () { + var aName = "Barry"; +})(); +// 変数 aName はスコープ外からアクセスできません +aName // "Uncaught ReferenceError: aName is not defined" が発生します +</pre> + +<p>IIFE を変数に代入することはその結果だけが保存されます。</p> + +<pre class="brush: js">var result = (function () { + var name = "Barry"; + return name; +})(); +// Immediately creates the output: +result; // "Barry"</pre> + +<section class="Quick_links" id="Quick_Links"> +<ol> + <li>学習記事 + <ol> + <li><a href="/ja/docs/Web/JavaScript/A_re-introduction_to_JavaScript#Functions">簡単な例</a> (「関数」の節の最後、「カスタムオブジェクト」の直前)</li> + </ol> + </li> + <li>Wikipedia の記事 + <ol> + <li>{{interwiki("wikipedia", "en:Immediately-invoked function expression", "IIFE")}} (英語)</li> + </ol> + </li> + <li><a href="/ja/docs/Glossary">用語集</a> + <ol> + <li>{{Glossary("Function", "関数")}}</li> + <li>{{Glossary("Self-Executing Anonymous Function", "自己実行無名関数")}}</li> + </ol> + </li> +</ol> +</section> |