Parfois, lors d'opérations sur des tableaux, la méthode de clonage est utilisée. Je pense qu'il est acceptable d'attribuer des valeurs directement sans utiliser cette méthode. Pour économiser de la mémoire ? Il existe aussi des copies superficielles, des copies profondes, etc., pardonnez-moi d'être novice. .
L'avantage est que contrairement à "=", le tableau clone est indépendant en mémoire, et vous pouvez en faire ce que vous voulez.
En js, les tableaux et les objets sont des types référence.
Ainsi, la fonction du clonage est de générer une nouvelle copie des données sans contaminer les données d'origine.
Quant à la copie profonde et à la copie superficielle :
Comme vous pouvez le voir, la différence entre la copie superficielle et la copie profonde est que la copie superficielle ne traverse que la première couche d'obj1, puis attribue chaque attribut d'obj1 à obj2, contrairement à la copie profonde, lorsque la valeur de l'attribut est un objet At ; cette fois, la copie complète créera un nouvel objet vide, puis attribuera la valeur de l'objet à l'objet vide, puis renverra l'objet vide comme attribut d'obj3.
Un principe très important dans la programmation JS est"Ne touchez pas les objets qui ne vous appartiennent pas"
Pour te donner une métaphore vivante, je t'ai prêté un livre (objet), et je pensais que tu voulais juste le lire (lire), mais tu l'as utilisé pour pratiquer la calligraphie (écrire). Je ne peux même pas lire le livre quand. vous me le rendez. Contenu normal.
Et deepClone résout ce problème. Je vous donne un livre, vous allez le copier, me rendez le livre tel quel, et vous pouvez disposer de la copie comme vous le souhaitez.
Copie profonde et copie superficielle en javascript ?