-
Notifications
You must be signed in to change notification settings - Fork 112
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
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.
Hello @matdomis ,
Here is a review.
Please, keep special formatting characters (such as !) and blank lines for conforming to the original file, and feel free to comment where you might disagree.
Thank you.
|
||
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. |
Hi @matdomis , Are you no longer available for this one? Thanks, |
@Peruibeloko, @jonnathan-ls, do you have time to see what is possible to do in relation to this pull request? |
@nazarepiedady I'm solving the merge conflicts |
@nazarepiedady @odsantos @jonnathan-ls the merge conflict is resolved on my fork |
@Peruibeloko, you need to do another pull request to be merged. I will close this, and reassign the task to you, because this looks abandoned. |
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.