diff options
author | Florian Merz <me@fiji-flo.de> | 2021-02-11 14:49:58 +0100 |
---|---|---|
committer | Florian Merz <me@fiji-flo.de> | 2021-02-11 14:49:58 +0100 |
commit | 68fc8e96a9629e73469ed457abd955e548ec670c (patch) | |
tree | 8529ab9fe63d011f23c7f22ab5a4a1c5563fcaa4 /files/pt-br/glossary/iife | |
parent | 8260a606c143e6b55a467edf017a56bdcd6cba7e (diff) | |
download | translated-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.html | 48 |
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> |