You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/09-classes/01-class/article.md
+9-10Lines changed: 9 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -25,9 +25,8 @@ class MyClass {
25
25
}
26
26
```
27
27
28
-
Então use `new MyClass()` para criar um novo objeto com todos os métodos listados.
28
+
Então use `new MyClass()` para criar um objeto com todos os métodos listados.
29
29
30
-
The `constructor()` method is called automatically by `new`, so we can initialize the object there.
31
30
O método `constructor()` é executado automaticamente pela declaração de `new`, então realizamos a inicialização o objeto através dessa chamada.
32
31
33
32
Por exemplo:
@@ -55,10 +54,10 @@ Quando `new User("John")` é executado:
55
54
1. Um novo objeto é criado (também descrito como tendo sido `instanciado`).
56
55
2. O `construtor` é executado com o argumento fornecido e o atribui a `this.name`.
57
56
58
-
...Então podemos chamar os métodos do objetos`User`, como `user.sayHi()`.
57
+
...Então podemos chamar os métodos do objeto`User`, como `user.sayHi()`.
59
58
60
59
61
-
```warn header="No comma between class methods"
60
+
```warn header="Sem vírgula entre métodos de classe"
62
61
Uma armadilha comum para desenvolvedores iniciantes é colocar uma vírgula entre os métodos de classe, o que resultaria em um erro de sintaxe.
63
62
64
63
A notação aqui não deve ser confundida com `Object Literals`. Dentro da classe, não são necessárias vírgulas.
@@ -142,11 +141,11 @@ let user = new User("John");
142
141
user.sayHi();
143
142
```
144
143
145
-
O resultado desta definição é aproximadamente o mesmo. Portanto, existem de fato razões pelas quais `class` pode ser considerado um açúcar sintático para definir um construtor junto com seus métodos de protótipo.
144
+
O resultado desta definição é aproximadamente o mesmo. Portanto, existem de fato razões pelas quais `class` pode ser considerado um açúcar sintático para definir um construtor com seus métodos de protótipo.
146
145
147
146
Ainda assim, existem diferenças importantes.
148
147
149
-
1. Primeiro, uma função criada por `class` é rotulada por uma propriedade interna especial `[[IsClassConstructor]]: true`. Portanto, não é exatamente o mesmo que criá-lo manualmente.
148
+
1. Primeiro, uma função criada por `class` é rotulada por uma propriedade interna especial `[[IsClassConstructor]]: true`. Portanto, não é o mesmo que criá-lo manualmente.
150
149
151
150
A linguagem verifica essa propriedade em vários lugares. Por exemplo, diferente de uma função normal, ela deve ser chamada com `new`:
152
151
@@ -212,7 +211,7 @@ new User().sayHi(); // funciona, mostra a definição de MyClass
212
211
alert(MyClass); // erro, o nome MyClass não é visível fora da classe
213
212
```
214
213
215
-
Podemos até fazer aulas dinamicamente "sob demanda", assim:
214
+
Podemos até fazer uma classe dinamicamente "sob demanda", assim:
216
215
217
216
```js run
218
217
function makeClass(phrase) {
@@ -289,11 +288,11 @@ class User {
289
288
new User().sayHi();
290
289
```
291
290
292
-
Esses recursos são fáceis de lembrar, pois se assemelham aos de objetos literais.
291
+
Esses recursos são fáceis de lembrar, pois, se assemelham aos de objetos literais.
293
292
294
293
## Campos de classe
295
294
296
-
```warn header="Old browsers may need a polyfill"
295
+
```warn header="Navegadores antigos podem precisar de um polyfill"
297
296
Os campos de classe são uma adição recente a linguagem.
298
297
```
299
298
@@ -378,7 +377,7 @@ O problema é chamado de "perder `this`".
378
377
Existem duas abordagens para corrigi-lo, conforme discutido no capítulo <info:bind>:
379
378
380
379
1. Passe uma função wrapper, como `setTimeout(() => button.click(), 1000)`.
381
-
2. Vincule o método ao objeto, por exemplo.no construtor.
380
+
2. Vincule o método ao objeto, por exemplo, no construtor.
382
381
383
382
Os campos de classe fornecem outra sintaxe bastante elegante:
0 commit comments