Skip to content

Commit 6ed9576

Browse files
committed
FIX: article/tasks reviews resolved. Translate missing task.
1 parent 2f6340c commit 6ed9576

File tree

5 files changed

+29
-29
lines changed

5 files changed

+29
-29
lines changed

1-js/08-prototypes/02-function-prototype/1-changing-prototype/solution.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ Respostas:
33

44
1. `true`.
55

6-
A atribuição do `Rabbit.prototype` seta o `[[Prototype]]` para novos objetos, mas não afeta os objetos que já existem.
6+
A atribuição a `Rabbit.prototype` configura o `[[Prototype]]` para novos objetos, mas não afeta os objetos que já existem.
77

88
2. `false`.
99

10-
Objetos são atrbuídos por referência. O objeto do `Rabbit.prototype` não é duplicado, ele continua sendo um único objeto refereciado por `Rabbit.prototype` e pelo `[[Prototype]]` do `rabbit`.
10+
Objetos são atrbuídos por referência. O objeto do `Rabbit.prototype` não é duplicado, ele continua sendo um único objeto referenciado por `Rabbit.prototype` e pelo `[[Prototype]]` do `rabbit`.
1111

1212
Portanto, quando nós mudamos o seu conteúdo através de uma referência, ele fica visível para as outras.
1313

1-js/08-prototypes/02-function-prototype/1-changing-prototype/task.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
importância: 5
1+
importance: 5
22

33
---
44

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
We can use such approach if we are sure that `"constructor"` property has the correct value.
1+
Nós podemos usar essa abordagem se nós temos certeza que a propriedade `"constructor"` tem o valor correto.
22

3-
For instance, if we don't touch the default `"prototype"`, then this code works for sure:
3+
Por exemplo, se nós não tocarmos o `"prototype"` padrão, então esse código funciona com certeza:
44

55
```js run
66
function User(name) {
@@ -10,14 +10,14 @@ function User(name) {
1010
let user = new User('John');
1111
let user2 = new user.constructor('Pete');
1212

13-
alert( user2.name ); // Pete (worked!)
13+
alert( user2.name ); // Pete (funcionou!)
1414
```
1515

16-
It worked, because `User.prototype.constructor == User`.
16+
Funcionou, porque `User.prototype.constructor == User`.
1717

18-
..But if someone, so to speak, overwrites `User.prototype` and forgets to recreate `constructor` to reference `User`, then it would fail.
18+
...Mas se alguém, por acaso, sobrescrever `User.prototype` e esquecer de recriar o `constructor` com referência ao próprio `User`, então o código iria falhar.
1919

20-
For instance:
20+
Por exemplo:
2121

2222
```js run
2323
function User(name) {
@@ -33,17 +33,17 @@ let user2 = new user.constructor('Pete');
3333
alert( user2.name ); // undefined
3434
```
3535

36-
Why `user2.name` is `undefined`?
36+
Por que `user2.name` está `undefined`?
3737

38-
Here's how `new user.constructor('Pete')` works:
38+
Abaixo está como o `new user.constructor('Pete')` funciona:
3939

40-
1. First, it looks for `constructor` in `user`. Nothing.
41-
2. Then it follows the prototype chain. The prototype of `user` is `User.prototype`, and it also has no `constructor` (because we "forgot" to set it right!).
42-
3. Going further up the chain, `User.prototype` is a plain object, its prototype is the built-in `Object.prototype`.
43-
4. Finally, for the built-in `Object.prototype`, there's a built-in `Object.prototype.constructor == Object`. So it is used.
40+
1. Primeiro, ele procura o `constructor` do `user`. Não o encontra.
41+
2. Depois, ele segue a cadeia de protótipos. O protótipo de `user` é `User.prototype`, e ele também não tem um `constructor` (porque nós "esquecemos" de configurá-lo!).
42+
3. Indo adiante na cadeia, `User.prototype` é um objeto vazio, cujo protótipo é o `Object.prototype` padrão.
43+
4. Por último, para o `Object.prototype` padrão existe um `Object.prototype.constructor == Object` padrão. Então, ele é usado.
4444

45-
Finally, at the end, we have `let user2 = new Object('Pete')`.
45+
No fim, nós temos `let user2 = new Object('Pete')`.
4646

47-
Probably, that's not what we want. We'd like to create `new User`, not `new Object`. That's the outcome of the missing `constructor`.
47+
Provavelmente não é isso que nós queremos. Nós gostaríamos de criar um `new User`, não um `new Object`. Essa é a consequência da falta de um `constructor`.
4848

49-
(Just in case you're curious, the `new Object(...)` call converts its argument to an object. That's a theoretical thing, in practice no one calls `new Object` with a value, and generally we don't use `new Object` to make objects at all).
49+
(Caso você esteja curioso, a chamada `new Object(...)` converte o seu argumento para um objeto. Isso é algo teórico, mas na prática ninguém faz a chamada `new Object` com um valor, e geralmente nós não usamos `new Object` para criar objetos).

1-js/08-prototypes/02-function-prototype/4-new-object-same-constructor/task.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ importance: 5
22

33
---
44

5-
# Create an object with the same constructor
5+
# Criando um objeto com o mesmo construtor
66

7-
Imagine, we have an arbitrary object `obj`, created by a constructor function -- we don't know which one, but we'd like to create a new object using it.
7+
Imagine que nós temos um objeto `obj` arbitrário, criado por uma função construtura -- nós não sabemos qual é, mas nós gostaríamos de criar um novo objeto usando ela.
88

9-
Can we do it like that?
9+
Nós podemos fazer isso dessa forma?
1010

1111
```js
1212
let obj2 = new obj.constructor();
1313
```
1414

15-
Give an example of a constructor function for `obj` which lets such code work right. And an example that makes it work wrong.
15+
Dê um exemplo de uma função construtora para o `obj` que faça esse código funcionar corretamente, e outro exemplo que faça ele não funcionar.

1-js/08-prototypes/02-function-prototype/article.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Lembre-se, novos objetos podem ser criados com uma função construtora, usando `new F()`.
44

5-
Se `F.prototype` é um objeto, então o operador `new` usa ela para setar `[[Prototype]]` no novo objeto.
5+
Se `F.prototype` for um objeto, então o operador `new` usa ela para configurar o `[[Prototype]]` do novo objeto.
66

77
```smart
88
JavaScript tem herança prototipada desde o começo. Isso era uma das funcionalidades centrais da linguagem.
@@ -27,7 +27,7 @@ function Rabbit(name) {
2727
Rabbit.prototype = animal;
2828
*/!*
2929

30-
let rabbit = new Rabbit("White Rabbit"); // rabbit.__proto__ == animal
30+
let rabbit = new Rabbit("Coelho Branco"); // rabbit.__proto__ == animal
3131

3232
alert( rabbit.eats ); // true
3333
```
@@ -137,7 +137,7 @@ function Rabbit() {}
137137
// não sobrescreva Rabbit.prototype completamente
138138
// apenas adicione
139139
Rabbit.prototype.jumps = true
140-
// o Rabbit.prototype.constructor default fica preservado
140+
// o Rabbit.prototype.constructor padrão fica preservado
141141
```
142142

143143
Outra alternativa é recriar a propriedade `constructor` manualmente:
@@ -156,13 +156,13 @@ Rabbit.prototype = {
156156

157157
## Resumo
158158

159-
Neste capítulo, nós descrevemos brevemente a forma de setar um `[[Prototype]]` para os objetos via função construtura. Mais tarde nós vamos ver padrões (*patterns*) mais avançados de programação que dependem disso.
159+
Neste capítulo, nós descrevemos brevemente a forma de configurar um `[[Prototype]]` para os objetos criados via função construtura. Mais tarde nós vamos ver padrões (*patterns*) mais avançados de programação que dependem disso.
160160

161161
É tudo bem simples, mas aqui estão algumas notas para deixar as coisas claras:
162162

163-
- A propriedade `F.prototype` (não confunda com o `[[Prototype]]`) seta o `[[Prototype]]` de novos objetos quando `new F()` é chamado.
164-
- O valor de `F.prototype` deveria ser ou um objeto ou `null`: outros valores não vão funcionar.
165-
- A propriedade `"prototype"` só tem o efeito especial quando setada em uma função construtora, e invocada com `new`.
163+
- A propriedade `F.prototype` (não confunda com o `[[Prototype]]`) configura o `[[Prototype]]` de novos objetos quando `new F()` é chamado.
164+
- O valor de `F.prototype` deveria ser um objeto ou `null`: outros valores não vão funcionar.
165+
- A propriedade `"prototype"` só tem o efeito especial quando configurada em uma função construtora, e invocada com `new`.
166166

167167
Em objetos regulares, o `prototype` não tem nada de especial:
168168

0 commit comments

Comments
 (0)