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/04-object-basics/02-object-copy/article.md
+8-16Lines changed: 8 additions & 16 deletions
Original file line number
Diff line number
Diff line change
@@ -73,13 +73,9 @@ admin.name = 'Pete'; // changé par la référence "admin"
73
73
alert(*!*user.name*/!*); //'Pete', les changements sont visibles sur la référence "user"
74
74
```
75
75
76
-
<<<<<<< HEAD
77
-
C'est comme si l'on avait un cabinet avec deux clés et que on l'on utilisait l'un d'elles (`admin`) pour y accéder. Puis, si l'on utilise plus tard la clé (`user`) on peut voir les changements.
76
+
C'est comme si l'on avait un cabinet avec deux clés et que on l'on utilisait l'une d'elles (`admin`) pour y accéder. Puis, si l'on utilise plus tard la clé (`user`) on peut voir les changements.
78
77
79
78
## Comparaison par référence
80
-
=======
81
-
It's just as if we had a cabinet with two keys and used one of them (`admin`) to get into it. Then, if we later use another key (`user`) we can see changes.
82
-
>>>>>>> 23da191b58643387783f38e999f5b05be87d3d93
83
79
84
80
Deux objets sont egaux seulement s'ils sont le même objet.
85
81
@@ -234,13 +230,10 @@ Pour régler ça, on doit utiliser la boucle de clonage qui examine chaque valeu
234
230
235
231
On peut utiliser la récursion pour l'implémenter. Ou, pour ne pas réinventer la roue, prendre un implémentation existante. par exemple [_.cloneDeep(obj)](https://lodash.com/docs#cloneDeep) de la librairie [lodash](https://lodash.com).
236
232
237
-
<<<<<<< HEAD
238
-
## Résumé
239
-
=======
240
-
```smart header="Const objects can be modified"
241
-
An important "side effect"of storing objects as references is that an object declared as `const`*can* be modified.
233
+
```smart header="Les objets Const peuvent être modifiés"
234
+
Un "effet secondaire" important du stockage d'objets en tant que références est qu'un objet déclaré comme `const`*peut* être modifié.
242
235
243
-
For instance:
236
+
Par exemple :
244
237
245
238
```js run
246
239
const user = {
@@ -254,15 +247,14 @@ user.name = "Pete"; // (*)
254
247
alert(user.name); // Pete
255
248
```
256
249
257
-
It might seem that the line`(*)`would cause an error, but no. The value of`user`is constant, it must always reference the same object. But properties of that object are free to change.
250
+
Il peut sembler que la ligne`(*)`provoquerait une erreur, mais non. La valeur de`user`est constante, elle doit toujours référencer le même objet. Mais les propriétés de cet objet sont libres de changer.
258
251
259
-
In other words, the`const user`gives an error only if we try to set `user=...`as a whole, and that's all.
252
+
En d'autres termes, le `const user` ne donne une erreur que si nous essayons de définir `user = ...` dans son ensemble, et c'est tout.
260
253
261
-
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>.
254
+
Cela dit, si nous avons vraiment besoin de créer des propriétés d'objet constantes, c'est également possible, mais en utilisant des méthodes totalement différentes, nous le mentionnerons dans le chapitre<info:property-descriptors>.
262
255
```
263
256
264
-
## Summary
265
-
>>>>>>> 23da191b58643387783f38e999f5b05be87d3d93
257
+
## Résumé
266
258
267
259
Les objets sont assignés et copiés par référence. En d'autres mots, une variable ne stocke pas la "valeur de l'objet" mais la "référence" (l'adresse en mémoire) de la valeur. Donc copier cette variable, ou la passer en argument d'une fonction, copie la référence, pas l'objet.
0 commit comments