From 20566e1bf09645e3a9b0a9efdabf196a14ab2164 Mon Sep 17 00:00:00 2001 From: Nelson Henrique Date: Sat, 23 Oct 2021 17:38:49 +0100 Subject: fix: Correct and format JS functions section in pt-br (#2789) --- .../web/javascript/reference/functions/index.html | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/files/pt-br/web/javascript/reference/functions/index.html b/files/pt-br/web/javascript/reference/functions/index.html index 9786b8434a..9233c54144 100644 --- a/files/pt-br/web/javascript/reference/functions/index.html +++ b/files/pt-br/web/javascript/reference/functions/index.html @@ -211,21 +211,19 @@ param => expressão

Compare o seguinte:

-

Uma função definida com function constructor atribuiída à variável multiply

+

Uma função definida com Function constructor atribuída à variável multiply

-
function multiply(x, y) {
-   return x * y;
-}
+
var multiply = new Function('x', 'y', 'return x * y');
 
-

Uma function expression de uma função anônima atribuída à variável multiplicar

+

Uma function expression de uma função anônima atribuída à variável multiply

var multiply = function(x, y) {
    return x * y;
 };
 
-

Uma function expression de uma função chamada func_name atribuída à variável multiplicar

+

Uma function expression de uma função chamada func_name atribuída à variável multiply

var multiply = function func_name(x, y) {
    return x * y;
@@ -248,7 +246,7 @@ alert(x); // throws an error
 
 

Como o quarto exemplo mostra, o nome da função pode ser diferente da variável à qual a função é atribuída. Eles não têm relação um com o outro. Uma declaração de função também cria uma variável com o mesmo nome da função. Assim, ao contrário daquelas definidas por expressões de função, funções definidas por declarações de função podem ser acessadas pelo seu nome no escopo onde elas foram definidas:

-

Uma função definida por 'new Function' não possui um nome. Entretanto, na máquina de JavaScriptSpiderMonkey, a forma serializada da função aparece como se ela tivesse o nome "anonymous". Por exemplo, alert(new Function()) gera como saída:

+

Uma função definida por 'new Function' não possui um nome. Entretanto, na máquina de JavaScript SpiderMonkey, a forma serializada da função aparece como se ela tivesse o nome "anonymous". Por exemplo, alert(new Function()) gera como saída:

function anonymous() {
 }
@@ -268,11 +266,11 @@ function foo() {
 }
 
-

Uma função definida por uma expressão de função herda o escopo atual. Isto é, a função forma um closure. Por outro lado, uma função definida por um construtorFunction não herda qualquer escopo a não ser o escopo global (que todas as funções herdam).

+

Uma função definida por uma expressão de função herda o escopo atual. Isto é, a função forma um closure. Por outro lado, uma função definida por um construtor Function não herda qualquer escopo a não ser o escopo global (que todas as funções herdam).

-

Funções definidas por expressões de função e declarações de função são analisadas somente uma vez, enquanto aquelas definidas pelo construtorFunction não são. Isto é, a string que forma o corpo da função, passada para o construtorFunction precisa ser analisada toda vez que o construtor é chamado. Embora uma expressão de função crie um closure a cada vez, o corpo da função não é reanalisado, assim expressões de função ainda são mais rápidas do que  "new Function(...)". Assim, o construtorFunction deve geralmente ser evitado sempre que possível.

+

Funções definidas por expressões de função e declarações de função são analisadas somente uma vez, enquanto aquelas definidas pelo construtor Function não são. Isto é, a string que forma o corpo da função, passada para o construtor Function precisa ser analisada toda vez que o construtor é chamado. Embora uma expressão de função crie um closure a cada vez, o corpo da função não é reanalisado, assim expressões de função ainda são mais rápidas do que  "new Function(...)". Assim, o construtor Function deve geralmente ser evitado sempre que possível.

-

Deve ser notado, entretanto, que expressões de função e declarações de função aninhadas dentro de uma função gerada pela análise da string de um construtorFunction não são analisadas repetidamente. Por exemplo:

+

Deve ser notado, entretanto, que expressões de função e declarações de função aninhadas dentro de uma função gerada pela análise da string de um construtor Function não são analisadas repetidamente. Por exemplo:

var foo = (new Function("var bar = \'FOO!\';\nreturn(function() {\n\talert(bar);\n});"))();
 foo(); // O segmento "function() {\n\talert(bar);\n}" do corpo da função não é reanalisado.
-- cgit v1.2.3-54-g00ecf