Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Native prototypes #233

Conversation

flaviohblima
Copy link
Contributor

No description provided.

Copy link
Contributor

@odsantos odsantos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @flaviohblima,

Here is a review.
Please, feel free to leave me a note where you might disagree.

Thank you,
Osvaldo.

1-js/08-prototypes/03-native-prototypes/article.md Outdated Show resolved Hide resolved
1-js/08-prototypes/03-native-prototypes/article.md Outdated Show resolved Hide resolved
1-js/08-prototypes/03-native-prototypes/article.md Outdated Show resolved Hide resolved
1-js/08-prototypes/03-native-prototypes/article.md Outdated Show resolved Hide resolved
1-js/08-prototypes/03-native-prototypes/article.md Outdated Show resolved Hide resolved
1-js/08-prototypes/03-native-prototypes/article.md Outdated Show resolved Hide resolved
1-js/08-prototypes/03-native-prototypes/article.md Outdated Show resolved Hide resolved
1-js/08-prototypes/03-native-prototypes/article.md Outdated Show resolved Hide resolved
1-js/08-prototypes/03-native-prototypes/article.md Outdated Show resolved Hide resolved
1-js/08-prototypes/03-native-prototypes/article.md Outdated Show resolved Hide resolved
@javascript-translate-bot

Please make the requested changes. After it, add a comment "/done".
Then I'll ask for a new review 👻

@CLAassistant
Copy link

CLAassistant commented Dec 10, 2021

CLA assistant check
All committers have signed the CLA.

flaviohblima and others added 17 commits February 26, 2022 20:31
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
Co-authored-by: Osvaldo Dias dos Santos <osvaldo.msdsantos@yahoo.com>
@flaviohblima
Copy link
Contributor Author

/done

Copy link
Contributor

@odsantos odsantos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @flaviohblima ,

There are other sections of this lesson not translated yet, such as 01, and 02.

Plase, feel free to also tell where you disagree.

Thanks, Osvaldo.


So if the wrapper function is called as an object method, then `this` is passed to the original method `f`.
Então, se a função *wrapper* é chamada como um método de um objeto, então o this é passado para o método `f` original.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Então, se a função *wrapper* é chamada como um método de um objeto, então o this é passado para o método `f` original.
Então, se a função *wrapper* for chamada como um método de objeto, o `this` é passado para o método `f` original.


```js run
let obj = {};
alert( obj ); // "[object Object]" ?
```

Where's the code that generates the string `"[object Object]"`? That's a built-in `toString` method, but where is it? The `obj` is empty!
Onde está o código que gera a string `"[object Object]"`? Isso é um método embutido `toString`, mas onde ele está? O `obj` está vazio!
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Onde está o código que gera a string `"[object Object]"`? Isso é um método embutido `toString`, mas onde ele está? O `obj` está vazio!
Onde está o código que gera a string `"[object Object]"`? Isto vem de um método embutido `toString`, mas onde ele está? O `obj` está vazio!


...But the short notation `obj = {}` is the same as `obj = new Object()`, where `Object` is a built-in object constructor function, with its own `prototype` referencing a huge object with `toString` and other methods.
... Mas a notação abreviada `obj = {}` é o mesmo que `obj = new Object()`, onde `Object` é uma função construtora embutida, com seu próprio `prototype` referenciando um objeto enorme com `toString` e outros métodos.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
... Mas a notação abreviada `obj = {}` é o mesmo que `obj = new Object()`, onde `Object` é uma função construtora embutida, com seu próprio `prototype` referenciando um objeto enorme com `toString` e outros métodos.
... A notação abreviada `obj = {}` é o mesmo que `obj = new Object()`. Onde `Object` é uma função construtora embutida, com o seu próprio `prototype` referenciando um objeto enorme, possuindo `toString` e outros métodos.

@@ -38,115 +38,115 @@ alert(obj.toString === obj.__proto__.toString); //true
alert(obj.toString === Object.prototype.toString); //true
```

Please note that there is no additional `[[Prototype]]` in the chain above `Object.prototype`:
Note que não há um `[[Prototype]]` adicional na cadeia acima de `Object.prototype`:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Note que não há um `[[Prototype]]` adicional na cadeia acima de `Object.prototype`:
Note que na cadeia, acima de `Object.prototype`, não há um `[[Prototype]]` adicional:


Other built-in objects such as `Array`, `Date`, `Function` and others also keep methods in prototypes.
Outros objetos embutidos, como `Array`, `Date`, `Function`, entre outros, também mantém métodos nos seus protótipos.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Outros objetos embutidos, como `Array`, `Date`, `Function`, entre outros, também mantém métodos nos seus protótipos.
Outros objetos embutidos, como `Array`, `Date`, `Function`, etc., também têm métodos nos seus protótipos.


Another possibility is to inherit by setting `obj.__proto__` to `Array.prototype`, so all `Array` methods are automatically available in `obj`.
Outra possibilidade é herdar configurando `obj.__proto__` para `Array.prototype`, de forma que todos os métodos de `Array` fiquem automaticamente disponíveis em `obj`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Outra possibilidade é herdar configurando `obj.__proto__` para `Array.prototype`, de forma que todos os métodos de `Array` fiquem automaticamente disponíveis em `obj`.
Outra possibilidade é herdando, configurando `obj.__proto__` para `Array.prototype`, de forma que todos os métodos de `Array` fiquem automaticamente disponíveis em `obj`.

- Built-in prototypes can be modified or populated with new methods. But it's not recommended to change them. The only allowable case is probably when we add-in a new standard, but it's not yet supported by the JavaScript engine
- Todos os objetos enbutidos seguem o mesmo padrão:
- Os métodos são guardados no protótipo (`Array.prototype`, `Object.prototype`, `Date.prototype`, etc.)
- O objeto só guarda os dados nele mesmo (itens de array, propriedades de objetos, a data)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- O objeto só guarda os dados nele mesmo (itens de array, propriedades de objetos, a data)
- O objeto só guarda os dados nele mesmo (itens de array, propriedades de objetos, uma data)


![](object-prototype.svg)

When `new Object()` is called (or a literal object `{...}` is created), the `[[Prototype]]` of it is set to `Object.prototype` according to the rule that we discussed in the previous chapter:
Quando `new Object()` é chamado (ou um objeto literal `{...}` é criado), o seu `[[Prototype]]` é configurado para o `Object.prototype` de acordo com a regra que nós discutimos no capítulo anterior:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Quando `new Object()` é chamado (ou um objeto literal `{...}` é criado), o seu `[[Prototype]]` é configurado para o `Object.prototype` de acordo com a regra que nós discutimos no capítulo anterior:
Quando `new Object()` é invocado (ou um objeto literal `{...}` é criado), o seu `[[Prototype]]` é configurado para o `Object.prototype`, de acordo com a regra que nós discutimos no capítulo anterior:


![](console_dir_array.png)

Other built-in objects also work the same way. Even functions -- they are objects of a built-in `Function` constructor, and their methods (`call`/`apply` and others) are taken from `Function.prototype`. Functions have their own `toString` too.
Outros objetos embutidos também trabalham da mesma forma. Até mesmo funções -- elas são objetos de um construtor `Function` embutido, e seus métodos (`call`/`apply` e outros) são obtidos de `Function.prototype`. Funções também têm seu próprio `toString`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Outros objetos embutidos também trabalham da mesma forma. Até mesmo funções -- elas são objetos de um construtor `Function` embutido, e seus métodos (`call`/`apply` e outros) são obtidos de `Function.prototype`. Funções também têm seu próprio `toString`.
Outros objetos embutidos também trabalham da mesma forma. Até mesmo funções -- elas são objetos de um construtor `Function` embutido, e os seus métodos (`call`/`apply`, e outros) são obtidos de `Function.prototype`. Funções também têm o seu próprio `toString`.


These objects are created invisibly to us and most engines optimize them out, but the specification describes it exactly this way. Methods of these objects also reside in prototypes, available as `String.prototype`, `Number.prototype` and `Boolean.prototype`.
Esses objetos são criados invisivelmente para nós e a maioria dos interpretadores (*engines*) otimizam esse processo, apesar da especificação descrevê-lo exatamente dessa forma. Os métodos desses objetos também residem nos protótipos, disponíveis como `String.prototype`, `Number.prototype` e `Boolean.prototype`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Esses objetos são criados invisivelmente para nós e a maioria dos interpretadores (*engines*) otimizam esse processo, apesar da especificação descrevê-lo exatamente dessa forma. Os métodos desses objetos também residem nos protótipos, disponíveis como `String.prototype`, `Number.prototype` e `Boolean.prototype`.
Esses objetos são criados invisivelmente para nós e a maioria dos interpretadores (*engines*) otimizam esse processo, apesar da especificação descrevê-lo exatamente desta forma. Os métodos desses objetos também residem nos protótipos, disponíveis como `String.prototype`, `Number.prototype` e `Boolean.prototype`.

@javascript-translate-bot

Please make the requested changes. After it, add a comment "/done".
Then I'll ask for a new review 👻

@odsantos
Copy link
Contributor

Hi @flaviohblima ,

Still working on this?
Due to the article update, there are conflicts too.

Thanks,
Osvaldo.

@jonnathan-ls
Copy link
Contributor

Olá @flaviohblima, tudo bem?

Conseguiria avaliar as solicitações registradas pelo @odsantos?

Com o prosseguimento e resolução de conflitos, sigo com minha revisão para darmos andamento a este PR

@nazarepiedady
Copy link
Member

@jonnathan-ls, could you update this pull request?

@nazarepiedady
Copy link
Member

@Peruibeloko, could you do something about this pull request?

@jonnathan-ls
Copy link
Contributor

jonnathan-ls commented Jun 1, 2024

@jonnathan-ls, could you update this pull request?

@nazarepiedady I fixed merge conflict fixes and observations recorded by @odsantos, also added some outstanding translations in the last 2 commtis 2d40fdd and 06ba0db

Could you rate the changes and add a review? If necessary, I will contribute again

Copy link
Contributor

@jonnathan-ls jonnathan-ls left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With the contribution of this PR #233 (comment), I am adding my LGTM

Copy link
Member

@nazarepiedady nazarepiedady left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is time to go ahead with this pull request.

@nazarepiedady nazarepiedady merged commit b681b75 into javascript-tutorial:master Aug 5, 2024
1 check passed
@javascript-translate-bot

Thank you 💖 I updated the Progress Issue #1 🎉 🎉 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants