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
Objects references and copying #223
base: master
Are you sure you want to change the base?
Conversation
| @@ -1,198 +1,195 @@ | |||
| # Object references and copying | |||
| # Referências de objetos e cópias | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| # Referências de objetos e cópias | |
| # Referências e cópias de objetos |
|
|
||
| That's easy to understand if we look a bit under the hood of what happens when we copy a value. | ||
| Isso é fácil de entender quando olhamos um pouco nos bastidores do que acontece quando copiamos um valor. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Isso é fácil de entender quando olhamos um pouco nos bastidores do que acontece quando copiamos um valor. | |
| Isso é fácil de entender quando olhamos um pouco nos bastidores ao que acontece quando copiamos um valor. |
|
|
||
| Let's start with a primitive, such as a string. | ||
| Vamos começar com um primitivo, como uma string. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Vamos começar com um primitivo, como uma string. | |
| Vamos começar por um primitivo, como uma string. |
|
|
||
| Here we put a copy of `message` into `phrase`: | ||
| Aqui colocamos uma copia de `message` para `phrase`: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Aqui colocamos uma copia de `message` para `phrase`: | |
| Aqui colocamos uma copia de `message` em `phrase`: |
|
|
||
| As a result we have two independent variables, each one storing the string `"Hello!"`. | ||
| Como resultado nós temos duas variáveis independentes, cada uma armazenando uma string `"Hello!".` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Como resultado nós temos duas variáveis independentes, cada uma armazenando uma string `"Hello!".` | |
| Como resultado nós temos duas variáveis independentes, cada uma armazenando a string `"Hello!".` |
| @@ -248,17 +248,17 @@ user.name = "Pete"; // (*) | |||
| alert(user.name); // Pete | |||
| ``` | |||
| It might seem that the line `(*)` would cause an error, but it does not. The value of `user` is constant, it must always reference the same object, but properties of that object are free to change. | |||
| Pode parecer que a linha (*) causaria um erro, mas não causa. O valor de `user` é constante, precisa sempre referenciar o mesmo objeto, mas propriedades desse objeto são livres para serem alteradas. | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Pode parecer que a linha (*) causaria um erro, mas não causa. O valor de `user` é constante, precisa sempre referenciar o mesmo objeto, mas propriedades desse objeto são livres para serem alteradas. | |
| Pode parecer que a linha (*) causaria um erro, mas não causa. O valor de `user` é constante, precisa de sempre referenciar o mesmo objeto, mas propriedades desse objeto são livres de serem alteradas. |
| That said, if we really need to make constant object properties, it's also possible, but using totally different methods. We'll mention that in the chapter <info:property-descriptors>. | ||
| Dito isso, se realmente precisarmos criar propriedades constantes no objeto, também é possível, mas usando métodos totalmente diferentes. Iremos menconar isso no capítulo <info:property-descriptors>. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Dito isso, se realmente precisarmos criar propriedades constantes no objeto, também é possível, mas usando métodos totalmente diferentes. Iremos menconar isso no capítulo <info:property-descriptors>. | |
| Dito isso, se realmente precisarmos de criar propriedades constantes no objeto, também é possível, mas usando métodos totalmente diferentes. Iremos menconar isso no capítulo <info:property-descriptors>. |
|
|
||
| Objects are assigned and copied by reference. In other words, a variable stores not the "object value", but a "reference" (address in memory) for the value. So copying such a variable or passing it as a function argument copies that reference, not the object itself. | ||
| Objetos são atribuidos e copiados por referência. Em outras palavras, uma variável armazena não o "valor do objeto", mas sim sua "referência" (endereço na memória) para o valor. Então copiar tal variável ou passar ela como um argumento de uma função copia a referência, não o proprio objeto. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Objetos são atribuidos e copiados por referência. Em outras palavras, uma variável armazena não o "valor do objeto", mas sim sua "referência" (endereço na memória) para o valor. Então copiar tal variável ou passar ela como um argumento de uma função copia a referência, não o proprio objeto. | |
| Objetos são atribuidos e copiados por referência. Por outras palavras, uma variável armazena não o "valor do objeto", mas sim uma "referência" (endereço na memória) para o valor. Então copiar tal variável ou passar ela como um argumento de uma função copia a referência, não o proprio objeto. |
|
|
||
| All operations via copied references (like adding/removing properties) are performed on the same single object. | ||
| Todas as operações por meio de referências copiadas(como adicionar/remover propriedades) são realizadas no mesmo objeto único. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Todas as operações por meio de referências copiadas(como adicionar/remover propriedades) são realizadas no mesmo objeto único. | |
| Todas as operações por meio de referências copiadas(como adicionar/remover propriedades) são realizadas no mesmo único objeto. |
|
|
||
| To make a "real copy" (a clone) we can use `Object.assign` for the so-called "shallow copy" (nested objects are copied by reference) or a "deep cloning" function, such as [_.cloneDeep(obj)](https://lodash.com/docs#cloneDeep). | ||
| Para criar uma "cópia real" (um clone) podemos usar `Object.assign` para o então chamado "cópia superficial" (objetos aninhados são copiados por referência) ou uma função de "clonagem profunda", como a [_.cloneDeep(obj)](https://lodash.com/docs#cloneDeep). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Para criar uma "cópia real" (um clone) podemos usar `Object.assign` para o então chamado "cópia superficial" (objetos aninhados são copiados por referência) ou uma função de "clonagem profunda", como a [_.cloneDeep(obj)](https://lodash.com/docs#cloneDeep). | |
| Para criar uma "cópia real" (um clone) podemos usar `Object.assign` para a chamada "cópia superficial" (objetos aninhados são copiados por referência) ou uma função de "clonagem profunda", como a [_.cloneDeep(obj)](https://lodash.com/docs#cloneDeep). |
|
Please make the requested changes. After it, add a comment "/done". |
|
Hello @matdomis , Please, when you are able to work on the requested review changes, do not forget the above instruction from the bot. Thank you. |
|
/done |
|
Hello @matdomis , you marked as '\done' but I still see my last review suggestions. Thanks. |

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.

I've not translated the code variables (but the comments I did of course) because It's ok to write and read code in english.