Skip to content

Commit c5b63ba

Browse files
authored
Update article.md
1 parent 96568bf commit c5b63ba

File tree

1 file changed

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

1 file changed

+7
-7
lines changed

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ sayHi(); // Olá
3131

3232
A maior diferença de outros métodos vistos é que a função é literalmente criada a partir de uma `string`, que é passada em tempo de execução.
3333

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

3636
Mas `new Function` permite transformar qualquer `string` em uma função. Por exemplo, nós podemos receber uma nova função de um servidor e executa-la:
3737

@@ -42,7 +42,7 @@ let func = new Function(str);
4242
func();
4343
```
4444

45-
Ela é usada em casos muito específicos, como quando nós recebemos código de um servidor, ou para compilar dinamicamente a função a partir de um `template`. A necessidade disso geralmente surge em estágios avançados de desenvolvimento.
45+
Ela é usada em casos muito específicos, como quando nós recebemos código de um servidor, ou para compilar dinamicamente a função a partir de um *template*. A necessidade disso geralmente surge em estágios avançados de desenvolvimento.
4646

4747
## Closure
4848

@@ -83,17 +83,17 @@ getFunc()(); // *!*"teste"*/!*, do escopo léxico de getFunc
8383

8484
Essa caracteristica especial de `new Function` parece estranha, mas se apresenta muito útil na prática.
8585

86-
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.
86+
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.
8787

88-
Nossa nova função precisa interagir com o `script` principal.
88+
Nossa nova função precisa interagir com o *script* principal.
8989

9090
Talvez nós queremos que ela consiga acessar variáveis locias externas?
9191

92-
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.
92+
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.
9393

9494
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 "encontra-e-repõem".
9595

96-
Entretanto, se `new Function` pudesse acessar variáveis externas, então ele não conseguiria encontrar `userName`, pois ele é passado como uma string *depois* que o código é minificado.
96+
Entretanto, se `new Function` pudesse acessar variáveis externas, então ele não conseguiria encontrar `userName`, pois ele é passado como uma string **depois** que o código é minificado.
9797

9898
**Mesmo se nós pudessemos acessar o escopo léxico externo na `new Function`, nós teriamos problemas com minificadores.**
9999

@@ -124,7 +124,7 @@ A sintaxe:
124124
let func = new Function(arg1, arg2, ..., body);
125125
```
126126

127-
Por razões históricas, arguments can also be given as a comma-separated list.
127+
Por razões históricas, argumentos também podem ser dados como uma lista separada por vírgulas.
128128

129129
Estes três significam o mesmo:
130130

0 commit comments

Comments
 (0)