Discussion sur les exemples de copie profonde js
La copie profonde consiste à copier l'objet parent vers l'objet enfant, et la mémoire et les opérations ultérieures des deux copies ne s'affecteront pas mutuellement. Cet article partage principalement avec vous la discussion sur les exemples de copie profonde js, dans l'espoir d'aider tout le monde. .
(1) Méthode 1
function copy(obj1,obj2){ var obj2=obj2||{}; for(var name in obj1){ if(typeof obj1[name] === "object"){ //先判断一下obj[name]是不是一个对象 obj2[name]= (obj1[name].constructor===Array)?[]:{}; copy(obj1[name],obj2[name]); //然后来无限递归 }else{ obj2[name]=obj1[name]; //如果不是对象,直接赋值。 } } return obj2; }
Comment utiliser :
var obj1 = { se:[{a:1,b:2},{c:3}], sa:{a:"g"}, sc:function(){console.log(1)} }var n_obj = copy(obj1,{}) console.log(n_obj)
(2) Méthode 2
function d_clone(obj) { return Object.getPrototypeOf(Object.create(obj)); }
Comment utiliser :
var obj1 = { se:[{a:1,b:2},{c:3}], sa:{a:"g"}, sc:function(){console.log(1)} }var n2_obj = d_clone(obj1); console.log(n2_obj)
(3) Méthode 3
JSON.parse(JSON.stringify(obj)
Explication : Les attributs de obj ne peuvent pas contenir de fonctions.
(1) Méthode 1
function copy(obj1,obj2){ var obj2=obj2||{}; for(var name in obj1){ if(typeof obj1[name] === "object"){ //先判断一下obj[name]是不是一个对象 obj2[name]= (obj1[name].constructor===Array)?[]:{}; copy(obj1[name],obj2[name]); //然后来无限递归 }else{ obj2[name]=obj1[name]; //如果不是对象,直接赋值。 } } return obj2; }
Comment utiliser :
var obj1 = { se:[{a:1,b:2},{c:3}], sa:{a:"g"}, sc:function(){console.log(1)} }var n_obj = copy(obj1,{}) console.log(n_obj)
(2) Méthode 2
function d_clone(obj) { return Object.getPrototypeOf(Object.create(obj)); }
Comment utiliser :
var obj1 = { se:[{a:1,b:2},{c:3}], sa:{a:"g"}, sc:function(){console.log(1)} }var n2_obj = d_clone(obj1); console.log(n2_obj)
(3) Méthode 3
JSON.parse(JSON.stringify(obj)
Explication : Les attributs de obj ne peuvent pas contenir de fonctions.
Recommandations associées :
Recommandations associées :
Compréhension approfondie des performances de copie approfondie de JavaScript
Qu'est-ce que js deep copy Et la copie superficielle et sa mise en œuvre
La différence entre la copie superficielle JavaScript et la copie profonde
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Golang est un langage de programmation puissant et efficace qui peut être utilisé pour développer diverses applications et services. Dans Golang, les pointeurs sont un concept très important, qui peut nous aider à exploiter les données de manière plus flexible et plus efficace. La conversion de pointeur fait référence au processus d'opérations de pointeur entre différents types. Cet article utilisera des exemples spécifiques pour découvrir les meilleures pratiques de conversion de pointeur dans Golang. 1. Concepts de base Dans Golang, chaque variable a une adresse, et l'adresse est l'emplacement de la variable en mémoire.

Introduction à la méthode d'obtention du code d'état HTTP en JavaScript : Dans le développement front-end, nous devons souvent gérer l'interaction avec l'interface back-end, et le code d'état HTTP en est une partie très importante. Comprendre et obtenir les codes d'état HTTP nous aide à mieux gérer les données renvoyées par l'interface. Cet article explique comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournit des exemples de code spécifiques. 1. Qu'est-ce que le code d'état HTTP ? Le code d'état HTTP signifie que lorsque le navigateur lance une requête au serveur, le service

Le framework Django est un framework Python pour applications Web qui fournit un moyen simple et puissant de créer des applications Web. En fait, Django est devenu l'un des frameworks de développement Web Python les plus populaires et est devenu le premier choix de nombreuses entreprises, notamment Instagram et Pinterest. Cet article approfondira ce qu'est le framework Django, y compris les concepts de base et les composants importants, ainsi que des exemples de code spécifiques. Concepts de base de DjangoDjan

La relation entre le nombre d'instances Oracle et les performances de la base de données La base de données Oracle est l'un des systèmes de gestion de bases de données relationnelles les plus connus du secteur et est largement utilisée dans le stockage et la gestion de données au niveau de l'entreprise. Dans la base de données Oracle, l'instance est un concept très important. L'instance fait référence à l'environnement d'exécution de la base de données Oracle en mémoire. Chaque instance possède une structure de mémoire et un processus d'arrière-plan indépendants, qui sont utilisés pour traiter les demandes des utilisateurs et gérer les opérations de la base de données. Le nombre d'instances a un impact important sur les performances et la stabilité de la base de données Oracle.

Présentation de l'utilisation de WebSocket et de JavaScript pour mettre en œuvre un système de signature électronique en ligne : Avec l'avènement de l'ère numérique, les signatures électroniques sont largement utilisées dans divers secteurs pour remplacer les signatures papier traditionnelles. En tant que protocole de communication full-duplex, WebSocket peut effectuer une transmission de données bidirectionnelle en temps réel avec le serveur. En combinaison avec JavaScript, un système de signature électronique en ligne peut être mis en œuvre. Cet article expliquera comment utiliser WebSocket et JavaScript pour développer un outil en ligne simple.

En tant que langage de programmation moderne, le langage Go a été apprécié et privilégié par de plus en plus de développeurs ces dernières années en raison de sa simplicité et de son efficacité. L’une des caractéristiques uniques est sa nature monothread. Dans les langages de programmation multithread traditionnels, les développeurs doivent généralement gérer manuellement la synchronisation et l'exclusion mutuelle entre les threads. Dans le langage Go, avec sa coroutine (Goroutine) et son mécanisme de communication (canal) uniques, il peut être pratique et efficace de mettre en œuvre une programmation simultanée. 1. Goroutine et thread unique : Go Language

En tant que système d'exploitation open source couramment utilisé, le système d'exploitation Linux offre une forte personnalisation et flexibilité. Lors de l'utilisation de systèmes Linux, nous rencontrons souvent le traitement de divers caractères spéciaux. Ces caractères spéciaux ont des significations particulières dans la ligne de commande et peuvent implémenter de nombreuses fonctions avancées. Cet article approfondira les caractères spéciaux courants sous Linux et présentera leur utilisation en détail avec des exemples de code spécifiques. Caractères génériques : les caractères génériques sont des caractères spéciaux utilisés pour correspondre aux noms de fichiers. Les caractères génériques courants incluent *, ?, [], etc. En voici plusieurs
