— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
copie
la copie Superficielle est un peu sage copie d’un objet. Un nouvel objet est créé qui a une copie exacte des valeurs de l’objet d’origine. Si l’un des champs de l’objet est une référence à d’autres objets, seules les adresses de référence sont copiées, c’est-à-dire que seule l’adresse mémoire est copiée.
Deep copy
Une copie profonde copie tous les champs et fait des copies de la mémoire allouée dynamiquement pointée par les champs., Une copie profonde se produit lorsqu’un objet est copié avec les objets auxquels il se réfère.
copie superficielle: il fait une copie de la référence à X dans Y. pensez-y comme une copie de L’adresse de X. Ainsi, les adresses de X et Y seront les mêmes, c’est-à-dire qu’elles pointeront vers le même emplacement de mémoire.
copie profonde: il fait une copie de tous les membres de X, alloue un emplacement de mémoire différent pour Y, puis assigne les membres copiés à Y pour obtenir une copie profonde. De cette façon, si X disparaît Y est toujours valide dans la mémoire.,
le terme correct à utiliser serait le clonage, où vous savez qu’ils sont tous les deux totalement identiques, mais pourtant différents (c’est-à-dire stockés sous deux emplacements différents dans l’espace mémoire).
prenons l’exemple suivant:
var employeeDetailsOriginal = { name: 'Manjula', age: 25, Profession: 'Software Engineer' };
disons que vous voulez créer un duplicata de celui-ci, de sorte que même si vous modifiez les valeurs d’origine, vous pouvez toujours revenir à l’original.,
je peux faire ceci:
var employeeDetailsDuplicate = employeeDetailsOriginal; //Shallow copy!
Si nous modifier une valeur:
employeeDetailsDuplicate.name = 'NameChanged';
Cette déclaration de changement de nom de employeeDetailsOriginal, puisque nous avons une copie, ou une référence à var employeeDetailsOriginal. Cela signifie que vous perdez également les données d’origine.
mais, en créant une toute nouvelle variable en utilisant les propriétés de la variable employeeDetailsOriginal d’origine, vous pouvez créer une copie profonde.
maintenant, si vous changez employeeDetailsDuplicate.,nom, cela ne touchera employeeDetailsDuplicate et pas employeeDetailsOriginal
Schématiques exemple
Alors, Comment copier un objet JavaScript pour la nouvelle variable NON par référence?
Votre seule option est de cloner en quelque sorte l’objet.
méthode javascript Pure pour cloner en profondeur l’objet
Leave a Reply