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-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ let user = {
31
31
};
32
32
```
33
33
34
-
Et ici comment elle est stockée en mémmoire :
34
+
Et ici comment elle est stockée en mémoire :
35
35
36
36

37
37
@@ -77,9 +77,9 @@ C'est comme si nous avions une armoire avec deux clés et que nous en utilisions
77
77
78
78
## Comparaison par référence
79
79
80
-
Deux objets sont egaux seulement s'ils sont le même objet.
80
+
Deux objets sont égaux seulement s'ils sont le même objet.
81
81
82
-
Par exemple, ici `a` et `b`référence le même objet, aussi sont-ils similaires :
82
+
Par exemple, ici `a` et `b`référencent le même objet, aussi sont-ils similaires :
83
83
84
84
```js run
85
85
let a = {};
@@ -98,7 +98,7 @@ let b = {}; // 2 objets indépendants
98
98
alert( a == b ); // false
99
99
```
100
100
101
-
Pour des comparaisons comme `obj1 > obj2` ou des comparaisons avec une primitive `obj ==5`, les objets sont convertis en primitive. Nous étudierons comment les conversions d'objets fonctionnent très bientôt, mais pour dire la vérité, de telles comparaisons sont rarement nécessaires, en général elles sont le résultat d'une erreur de programmation.
101
+
Pour des comparaisons comme `obj1 > obj2` ou des comparaisons avec une primitive `obj ==5`, les objets sont convertis en primitives. Nous étudierons comment les conversions d'objets fonctionnent très bientôt, mais pour dire la vérité, de telles comparaisons sont rarement nécessaires, en général elles sont le résultat d'une erreur de programmation.
102
102
103
103
## Clonage et fusion, Object.assign [#clonage-et-fusion-object-assign]
104
104
@@ -133,7 +133,7 @@ clone.name = "Pete"; // On change les données de celui-ci
133
133
alert( user.name ); // c'est toujour john dans l'objet copié
134
134
```
135
135
136
-
On peu aussi utiliser la méthode [Object.assign](mdn:js/Object/assign) pour cela.
136
+
On peut aussi utiliser la méthode [Object.assign](mdn:js/Object/assign) pour cela.
- Les arguments suivants `src1, ..., srcN` (cela peut-être tant que l'on veut) sont les objets à copier.
146
-
- La méthode copie les propriétés de toutes les objets à copier `src1, ..., srcN` dans l'objet `dest`. En d'autres mots, les propriétés de tous les arguments à partir du deuxième sont copiés dans le premier argument.
146
+
- La méthode copie les propriétés de tous les objets à copier `src1, ..., srcN` dans l'objet `dest`. En d'autres mots, les propriétés de tous les arguments à partir du deuxième sont copiés dans le premier argument.
147
147
- L'appel retourne `dest`.
148
148
149
149
Par exemple, on peut l'utiliser pour fusioner plusieurs objets en un seul :
On peut aussi utiliser `Object.assign`to replace `for..in` boucle pour un clonage simple.
175
+
On peut aussi utiliser `Object.assign`pour remplacer la boucle `for..in` pour un clonage simple.
176
176
177
177
```js
178
178
let user = {
@@ -228,7 +228,7 @@ user.sizes.width++; // on modifie la propriété à un endroit
228
228
alert(clone.sizes.width); // 51, on peut voir la modification dans un autre endroit
229
229
```
230
230
231
-
Pour régler ça, on doit utiliser la boucle de clonage qui examine chaque valeur de `user[key]` et, si c'est un objet, répliquer sa structure aussi. On appelle cela un "clone réél" (deep clone).
231
+
Pour régler ça, on doit utiliser la boucle de clonage qui examine chaque valeur de `user[key]` et, si c'est un objet, répliquer sa structure aussi. On appelle cela un "clone réel" (deep clone).
232
232
233
233
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).
0 commit comments