diff options
Diffstat (limited to 'files/pt-br/web/javascript/reference/operators/function')
-rw-r--r-- | files/pt-br/web/javascript/reference/operators/function/index.html | 113 |
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 <= 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> |