aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/web/javascript/reference/operators/function
diff options
context:
space:
mode:
Diffstat (limited to 'files/pt-br/web/javascript/reference/operators/function')
-rw-r--r--files/pt-br/web/javascript/reference/operators/function/index.html113
1 files changed, 113 insertions, 0 deletions
diff --git a/files/pt-br/web/javascript/reference/operators/function/index.html b/files/pt-br/web/javascript/reference/operators/function/index.html
new file mode 100644
index 0000000000..a5950f8ea1
--- /dev/null
+++ b/files/pt-br/web/javascript/reference/operators/function/index.html
@@ -0,0 +1,113 @@
+---
+title: Expressão de função (function expression)
+slug: Web/JavaScript/Reference/Operators/function
+tags:
+ - Expressões Primárias
+ - Função
+ - Internet
+ - JavaScript
+ - Operador
+ - Rede
+ - Web
+translation_of: Web/JavaScript/Reference/Operators/function
+---
+<div>{{jsSidebar("Operators")}}</div>
+
+<p>A palavara-chave <strong><code>function</code></strong> pode ser usada para definir uma função dentro de uma expressão.</p>
+
+<h2 id="Sintaxe">Sintaxe</h2>
+
+<pre class="syntaxbox">function [<em>name</em>]([<em>param1</em>[, <em>param2[</em>, ..., <em>paramN</em>]]]) {
+ <em>statements</em>
+}</pre>
+
+<h3 id="Parâmetros">Parâmetros</h3>
+
+<dl>
+ <dt><code>name</code></dt>
+ <dd>O nome da função. Pode ser omitido, neste caso a função será anônima. O nome só é local em relação ao corpo da função. </dd>
+ <dt><code>paramN</code></dt>
+ <dd>O nome de um argumento a ser passado para a função.</dd>
+ <dt><code>statements</code></dt>
+ <dd>As declarações que compreendem o corpo da função.</dd>
+</dl>
+
+<h2 id="Descrição">Descrição</h2>
+
+<p>Uma expressão de função (<em>function expression</em>) é muito similar e tem quase a mesma sintaxe de uma declaração de função (veja <a href="/en-US/docs/Web/JavaScript/Reference/Statements/function">function statement</a> para mais detalhes). A principal diferença entre uma expressão de função e a declaração de uma função é o nome da função (<em>function name</em>)<em>,</em> o qual pode ser omitido em expressões de funções para criar funções anônimas. Veja ainda o capítulo sobre <a href="/en-US/docs/Web/JavaScript/Reference/Functions">funções</a> para maiores informações.</p>
+
+<h2 id="Exemplos">Exemplos</h2>
+
+<p>O exemplo a seguir define uma função sem nome e a atribui a x. A função retorna o quadrado de seu argumento:</p>
+
+<pre class="brush: js">var x = function(y) {
+ return y * y;
+};
+</pre>
+
+<h3 id="Expressão_de_função_nomeada">Expressão de função nomeada</h3>
+
+<p>Se você quer se referir à função atual dentro do corpo da função, você terá que criar uma expressão de função nomeada. Este nome será local apenas para o corpo (escopo) da função. Isto ainda evita o uso da propriedade não-padronizada <code><a href="/en-US/docs/Web/JavaScript/Reference/Functions/arguments/callee">arguments.callee</a></code>.</p>
+
+<pre class="brush: js">var math = {
+ 'factorial': function factorial(n) {
+ if (n &lt;= 1)
+ return 1;
+ return n * factorial(n - 1);
+ }
+};
+</pre>
+
+<h2 id="Especificações">Especificações</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Especificação</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comentários</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-function-definitions', 'Function definitions')}}</td>
+ <td>{{Spec2('ESDraft')}}</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-function-definitions', 'Function definitions')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES5.1', '#sec-13', 'Function definition')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES3', '#sec-13', 'Function definition')}}</td>
+ <td>{{Spec2('ES3')}}</td>
+ <td>Initial definition. Implemented in JavaScript 1.5.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilidade_de_Navegador">Compatibilidade de Navegador</h2>
+
+<div class="hidden">
+<p>A tabela de compatibilidade nesta página é gerada por dados estruturados.<br>
+ Se você quiser contribuir para com os dados, por favor, veja <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> e nos mande um <em>pull request</em>.</p>
+</div>
+
+<p>{{CompatibilityTable}}</p>
+
+<p>{{Compat("javascript.operators.function")}}</p>
+
+<h2 id="Veja_também">Veja também</h2>
+
+<ul>
+ <li>{{jsxref("Functions_and_function_scope", "Funções e Escopos de Funções")}}</li>
+ <li>{{jsxref("Função")}}</li>
+ <li>{{jsxref("Statements/function", "function statement")}}</li>
+ <li>{{jsxref("Statements/function*", "function* statement")}}</li>
+ <li>{{jsxref("Operators/function*", "function* expression")}}</li>
+ <li>{{jsxref("GeneratorFunction")}}<span style='background-color: #ffffff; color: #333333; display: inline !important; float: none; font-family: "Open Sans",arial,x-locale-body,sans-serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-wrap: break-word;'>VersãoCompatívelDesconhecida<span style='background-color: #ffffff; color: #333333; display: inline !important; float: none; font-family: "Open Sans",arial,x-locale-body,sans-serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-wrap: break-word;'>VersãoCompatívelDesconhecida</span></span></li>
+</ul>