En javascript, il y a 2 types de variables :
1) Les primitives :
-Number
-String
-Boolean
2) Les objets.
-Tout le reste^^
Les variables de type "primitive" recoivent une "valeur" stockée en elles, par exemple :
1 2 3
| var a,b;
a=b=1; // a=1 & b=1
b=2; // a=1 & b=2 |
Tandis que les variables "objets" sont en réalité une référence(pointeur) vers un objet commun à tout ceux qui auront son "adresse".
1 2 3
| var a,b;
a=b={}; // a={} & b={}
b.attri=2; // a={attri:2} & b={attri:2} |
Il te faut donc "cloner" tes objets si tu veux qu'ils soient distincts.
Autant un "objet" de type "object" nécessite en général une boucle pour le cloner(boucle récursive en cas d'objet sur plusieurs niveau)(ou encore un parse(stringify) fera l'affaire) autant un objet de type "array" peut se cloner (pour un tableau sur 1 dimension) avec une simple fonction :
var maCopie = monArray.slice(0);
En espérant t'avoir aidé.
Partager