Avant de comprendre la copie profonde et la copie superficielle, vous devez comprendre certains concepts de base. Les types de variables stockés en mémoire sont divisés en types valeur et types référence.
1. Les caractéristiques de stockage de l'affectation du type de valeur, copiez toutes les données dans la variable et stockez-les dans la nouvelle variable.
Par exemple : var num = 123; var num1=num
signifie que le nombre stocké dans la variable est 123. Copiez ensuite les données, c'est-à-dire la copie 123. Ensuite, il y a 2 tableaux dans la mémoire ; attribuez les données copiées à num2, ce qui se caractérise par la présence de deux copies des données dans la mémoire. Cela peut être compris comme une copie superficielle.
2. Attribution des types de référence.
var o={name:'Zhang San'};
var obj=o;
La mission consiste à copier les données stockées dans la variable o, puis ces données est affecté à obj. Il y a 1 point de données dans la mémoire, et l'attribut name modifié à l'aide de obj affectera le nom en o.
Si lors de la copie, toutes les structures de référence des données sont copiées, alors les données sont copiées indépendamment en profondeur dans la mémoire
Si lors de la copie, seuls les attributs de l'objet actuel sont copiés ; , et l'attribut est un type de référence, qui n'est pas pris en compte, alors il s'agit d'une copie superficielle
Copie : fait référence à la copie des données de l'objet
doit être discutée lorsque ; discussion sur la copie approfondie et la copie superficielle Assurez-vous que les propriétés de l'objet sont également des types de référence.
L'article ci-dessus discutant brièvement de la copie profonde orientée objet et de la copie superficielle en JavaScript est tout le contenu partagé par l'éditeur. J'espère qu'il pourra vous donner une référence, et j'espère également que tout le monde soutiendra le PHP chinois. site web.
Pour plus d'articles sur la copie profonde orientée objet et la copie superficielle en JavaScript, veuillez faire attention au site Web PHP chinois !