aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/glossary/iife
diff options
context:
space:
mode:
authorFlorian Merz <me@fiji-flo.de>2021-02-11 14:49:58 +0100
committerFlorian Merz <me@fiji-flo.de>2021-02-11 14:49:58 +0100
commit68fc8e96a9629e73469ed457abd955e548ec670c (patch)
tree8529ab9fe63d011f23c7f22ab5a4a1c5563fcaa4 /files/pt-br/glossary/iife
parent8260a606c143e6b55a467edf017a56bdcd6cba7e (diff)
downloadtranslated-content-68fc8e96a9629e73469ed457abd955e548ec670c.tar.gz
translated-content-68fc8e96a9629e73469ed457abd955e548ec670c.tar.bz2
translated-content-68fc8e96a9629e73469ed457abd955e548ec670c.zip
unslug pt-br: move
Diffstat (limited to 'files/pt-br/glossary/iife')
-rw-r--r--files/pt-br/glossary/iife/index.html48
1 files changed, 48 insertions, 0 deletions
diff --git a/files/pt-br/glossary/iife/index.html b/files/pt-br/glossary/iife/index.html
new file mode 100644
index 0000000000..cff1519346
--- /dev/null
+++ b/files/pt-br/glossary/iife/index.html
@@ -0,0 +1,48 @@
+---
+title: IIFE
+slug: Glossario/IIFE
+tags:
+ - DesignPattern
+ - Glossário
+ - JavaScript
+translation_of: Glossary/IIFE
+---
+<p><strong>IIFE</strong> (Immediately Invoked Function Expression) é uma função em {{glossary("JavaScript")}} que é executada assim que definida.</p>
+
+<p>É um {{glossary("Design Pattern")}} também conhecido como {{glossary("Self-Executing Anonymous Function")}} e contém duas partes principais. A primeira é a função anônima cujo escopo léxico é encapsulado entre parênteses. Isso previne o acesso externo às variáveis declaradas na IIFE, bem como evita que estas variáveis locais poluam o escopo global.</p>
+
+<p>A segunda parte corresponde à criação da expressão <code>()</code>, por meio da qual o interpretador JavaScript avaliará e executará a função.</p>
+
+<h2 id="Exemplos">Exemplos</h2>
+
+<p>A função se torna uma expressão que é imediatamente executada. A variável definida dentro da expressão não pode ser acessada fora de seu escopo.</p>
+
+<pre class="brush: js"><code class="language-js"><span class="punctuation token">(</span><span class="keyword token">function</span> <span class="punctuation token">(</span><span class="punctuation token">)</span> <span class="punctuation token">{</span>
+ <span class="keyword token">var</span> nome <span class="operator token">=</span> <span class="string token">"Felipe"</span><span class="punctuation token">;</span>
+<span class="punctuation token">}</span><span class="punctuation token">)</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+<span class="comment token">// A variável nome não é acessível fora do escopo da expressão </span>
+nome <span class="comment token">// gerará o erro "Uncaught ReferenceError: nome is not defined"</span></code></pre>
+
+<p>Atribuir uma IIFE a uma variável não armazenará a função em si, mas o <strong>resultado da função.</strong></p>
+
+<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> result <span class="operator token">=</span> <span class="punctuation token">(</span><span class="keyword token">function</span> <span class="punctuation token">(</span><span class="punctuation token">)</span> <span class="punctuation token">{</span>
+ <span class="keyword token">var</span> nome <span class="operator token">=</span> <span class="string token">"Felipe"</span><span class="punctuation token">;</span>
+ <span class="keyword token">return</span> nome<span class="punctuation token">;</span>
+<span class="punctuation token">}</span><span class="punctuation token">)</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+<span class="comment token">// Imediatamente gera a saída: </span>
+result<span class="punctuation token">;</span> <span class="comment token">// "Felipe"</span></code></pre>
+
+<h2 id="Aprenda_Mais">Aprenda Mais</h2>
+
+<h3 id="Aprenda_mais_sobre_IFFE">Aprenda mais sobre IFFE</h3>
+
+<ul>
+ <li><a href="http://benalman.com/news/2010/11/immediately-invoked-function-expression/">Ben Alman's blog post defining IIFEs</a></li>
+ <li><a href="/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript#Functions">Quick example</a> (at the end of the "Functions" section, right before "Custom objects")</li>
+</ul>
+
+<h3 id="Conhecimentos_Gerais">Conhecimentos Gerais</h3>
+
+<ul>
+ <li>{{interwiki("wikipedia", "Immediately-invoked function expression", "IIFE")}} on Wikipedia</li>
+</ul>