Skip to content

Commit 8c915f8

Browse files
committed
refactor: corrects syntax and concordance errors
1 parent 0394ddf commit 8c915f8

File tree

1 file changed

+9
-9
lines changed
  • 1-js/06-advanced-functions/07-new-function

1 file changed

+9
-9
lines changed

Diff for: 1-js/06-advanced-functions/07-new-function/article.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
# A sintaxe de "new Function"
33

4-
Existe mais uma maneira de criar uma função. Ela é raramente usada, mas as vezes não existem alternativas.
4+
Existe mais uma maneira de criar uma função. Ela é raramente usada, mas às vezes não existem alternativas.
55

66
## Sintaxe
77

@@ -29,7 +29,7 @@ let sayHi = new Function('alert("Olá")');
2929
sayHi(); // Olá
3030
```
3131

32-
A principal diferença de outras formas que vimos é que a função é criada literalmente a partir de uma string, que é passada em tempo de execução.
32+
A principal diferença de outras formas que vimos é a função ser criada literalmente a partir de uma string, e passada em tempo de execução.
3333

3434
Todas as declarações anteriores requeriam de nós, programadores, escrever o código da função dentro do *script*.
3535

@@ -46,7 +46,7 @@ func();
4646

4747
## Closure
4848

49-
Normalmente, uma função lembra onde nasceu na propriedade especial `[[Environment]]`. Ele faz referência ao Ambiente Lexical de onde foi criado (abordaremos isso no capítulo <info:closure>).
49+
Normalmente, uma função lembra onde nasceu na propriedade especial `[[Environment]]`. Ela faz referência ao Ambiente Lexical de onde foi criado (abordaremos isso no capítulo <info:closure>).
5050

5151
Mas quando uma função é criada usando `new Function`, seu `[[Environment]]` é definido para fazer referência não ao Ambiente Lexical atual, mas ao ambiente global.
5252

@@ -82,25 +82,25 @@ function getFunc() {
8282
getFunc()(); // *!*"teste"*/!*, do escopo léxico de getFunc
8383
```
8484

85-
Essa caracteristica especial de `new Function` parece estranha, mas se apresenta muito útil na prática.
85+
Essa característica especial de `new Function` parece estranha, mas se apresenta muito útil, na prática.
8686

87-
Imagine que nós precisamos criar uma função a partir de uma `string`. O código dessa função é desconhecido durante a escrita do *script* (por esse motivo nós não usamos funções regulares), mas vai ser conhecido durante o processo de execução. Nós podemos recebe-lo do servidor ou de outra fonte.
87+
Imagine que nós precisamos criar uma função a partir de uma `string`. O código dessa função é desconhecido durante a escrita do *script* (por esse motivo, nós não usamos funções regulares), mas vai ser conhecido durante o processo de execução. Nós podemos receber do servidor ou de outra fonte.
8888

8989
Nossa nova função precisa interagir com o *script* principal.
9090

9191
E se você pudesse acessar as variáveis ​​externas?
9292

93-
O problema é que antes do JavaScript ser publicado para produção, ele é comprimido usando um "minificador" -- um programa especial que encolhe código removendo comentários, espaços e -- o mais importante, renomeia variáveis locais em variáveis mais curtas.
93+
O problema é que antes de o JavaScript ser publicado para produção, ele é comprimido usando um "minificador" -- um programa especial que encolhe código removendo comentários, espaços e -- o mais importante, renomeia variáveis locais em variáveis mais curtas.
9494

95-
Por exemplo, se uma função tem `let userName`, o minificador o troca por `let a` (ou outra letra se esta estiver ocupada), e ele faz isso em toda parte. Isso usualmente é uma coisa segura de se fazer, porque a variável é local, nada fora da função pode acessar ela. E dentro da função, o minificador troca todas as suas menções. Minificadores são inteligentes, eles analisam a estrutura do código, para que eles não quebrem nada. Eles não são um simples não-inteligente "encontra-e-substitui".
95+
Por exemplo, se uma função tem uma variável `let userName`, o minificador a troca por `let a` (ou outra letra se esta estiver ocupada), e ele faz isso em toda parte. Isso usualmente é uma coisa segura de se fazer, por a variável ser local, nada fora da função pode acessar ela. E dentro da função, o minificador troca todas as suas menções. Minificadores são inteligentes, eles analisam a estrutura do código, para que eles não quebrem nada. Eles não são um simples não-inteligente "encontra-e-substitui".
9696

9797
Portanto, se `new Function` tivesse acesso a variáveis ​​externas, não seria possível encontrar `userName` renomeado.
9898

99-
**Se a `nova Função` tivesse acesso a variáveis ​​externas, haveria problemas com minificadores.**
99+
**Se a `new Function` tivesse acesso a variáveis ​​externas, haveria problemas com minificadores.**
100100

101101
Além disso, esse código seria arquitetonicamente ruim e sujeito a erros.
102102

103-
Para passar algo para uma função, criada como `nova Função`, devemos usar seus argumentos.
103+
Para passar algo para uma função, criada como `new Function`, devemos usar seus argumentos.
104104

105105
## Resumo
106106

0 commit comments

Comments
 (0)