diff options
Diffstat (limited to 'files/pt-br/glossario/funcao-first-class')
-rw-r--r-- | files/pt-br/glossario/funcao-first-class/index.html | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/files/pt-br/glossario/funcao-first-class/index.html b/files/pt-br/glossario/funcao-first-class/index.html deleted file mode 100644 index 552b841dfa..0000000000 --- a/files/pt-br/glossario/funcao-first-class/index.html +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Função First-class -slug: Glossario/Funcao-First-class -translation_of: Glossary/First-class_Function ---- -<p>Entede-se que uma linguagem de programação tem <strong>Função First-class</strong> quando suas funções são tratadas como qualquer outra variável. Por exemplo, numa linguagem desse tipo, a função pode ser passada como argumento pra outras funções, ser retornada por outra função e pode ser atribuída como um valor à uma variável.</p> - -<h2 id="Exemplo_Atribuir_uma_função_à_uma_variável">Exemplo | Atribuir uma função à uma variável</h2> - -<h3 id="JavaScript">JavaScript</h3> - -<pre class="brush: js">const foo = function() { - console.log("foobar"); -} -// Chamar a função usando a variável -foo(); -</pre> - -<p>Nós atribuímos uma <code>Função Anônima</code> à uma <code>Variável</code>, então usamos a variável pra chamar a função adicionando parênteses <code>()</code> no fim.</p> - -<div class="note"> -<p><strong>Mesmo se sua função for nomeada,</strong> você pode usar o nome da variável pra chamá-la. Nomeá-la será útil quando for debugar seu código. <em>Mas não afetará a maneira que à chamamos.</em></p> -</div> - -<h2 id="Exemplo_Passar_uma_função_como_um_Argumento">Exemplo | Passar uma função como um Argumento</h2> - -<h3 id="JavaScript_2">JavaScript</h3> - -<pre class="brush: js">function sayHello() { - return "Hello, "; -} -function greeting(helloMessage, name) { - console.log(helloMessage() + name); -} -// Passar `sayHello` como um argumento pra função `greeting` -greeting(sayHello, "JavaScript!"); -</pre> - -<p>Nós estamos passando a função <code>sayHello()</code> como um argumento pra função <code>greeting()</code>, isso explica como estamos tratando a função como um <code>valor</code>.</p> - -<div class="note"> -<p>A função que passamos como um argumento pra outra função, chamou uma <strong><a href="/en-US/docs/Glossary/Callback_function">Função Callback</a>.</strong> <em><code>sayHello</code> é uma Função Callback.</em></p> -</div> - -<h2 id="Exemplo_Retornar_uma_função">Exemplo | Retornar uma função</h2> - -<h3 id="JavaScript_3">JavaScript</h3> - -<pre class="brush: js">function sayHello() { - return function() { - console.log("Hello!"); - } -} -</pre> - -<p>Neste exemplo; Precisamos retornar uma função de outra função - <em>Podemos retornar uma função porque tratamos função em JavaScript como um</em><em> </em><em><code>valor</code></em><em>.</em></p> - -<div class="note"> -<p>Uma função que retorna uma função é chamada de <strong>Higher-Order Function</strong></p> -</div> - -<p>De volta ao nosso exemplo; Agora, precisamos chamar a função <code>sayHello</code> e a <code>Função anônima</code> retornada. Existem duas maneiras para fazermos isso:</p> - -<h3 id="1-_Usando_uma_variável">1- Usando uma variável</h3> - -<pre class="brush: js">const sayHello = function() { - return function() { - console.log("Hello!"); - } -} -const myFunc = sayHello(); -myFunc(); -</pre> - -<p>Dessa maneira, ela retorna a mensagem <code>Hello!</code>.</p> - -<div class="note"> -<p>Você tem que usar outra variável. Se você fosse chamar <code>sayHello</code> diretamente, ela retornaria a função em si <strong>sem chamar a função retornada</strong>.</p> -</div> - -<h3 id="2-_Usando_parênteses_duplo">2- Usando parênteses duplo</h3> - -<pre class="brush: js">function sayHello() { - return function() { - console.log("Hello!"); - } -} -sayHello()(); -</pre> - -<p>Estamos usando parênteses duplo <code>()()</code> pra chamar também a função retornada.</p> - -<h2 id="Saiba_mais">Saiba mais</h2> - -<h3 id="Conhecimento_geral">Conhecimento geral</h3> - -<ul> - <li>{{Interwiki("wikipedia", "First-class_function", "First-class functions")}} na Wikipedia</li> -</ul> |