Maison interface Web js tutoriel Discussion sur les exemples de copie profonde js

Discussion sur les exemples de copie profonde js

Mar 06, 2018 pm 02:15 PM
javascript 实例 探讨

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; 
}
Copier après la connexion
Copier après la connexion

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)
Copier après la connexion
Copier après la connexion

(2) Méthode 2

function d_clone(obj) {
    return Object.getPrototypeOf(Object.create(obj));
}
Copier après la connexion
Copier après la connexion

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)
Copier après la connexion
Copier après la connexion

(3) Méthode 3

JSON.parse(JSON.stringify(obj)
Copier après la connexion
Copier après la connexion

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; 
}
Copier après la connexion
Copier après la connexion

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)
Copier après la connexion
Copier après la connexion

(2) Méthode 2

function d_clone(obj) {
    return Object.getPrototypeOf(Object.create(obj));
}
Copier après la connexion
Copier après la connexion

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)
Copier après la connexion
Copier après la connexion

(3) Méthode 3

JSON.parse(JSON.stringify(obj)
Copier après la connexion
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

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

Découvrez des exemples de bonnes pratiques de conversion de pointeur dans Golang Découvrez des exemples de bonnes pratiques de conversion de pointeur dans Golang Feb 24, 2024 pm 03:51 PM

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.

Comment obtenir facilement le code d'état HTTP en JavaScript Comment obtenir facilement le code d'état HTTP en JavaScript Jan 05, 2024 pm 01:37 PM

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

Analyse approfondie : qu'est-ce que le framework Django ? Analyse approfondie : qu'est-ce que le framework Django ? Jan 19, 2024 am 09:23 AM

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 relation entre le nombre d'instances Oracle et les performances de la base de données Mar 08, 2024 am 09:27 AM

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.

Comment mettre en œuvre un système de signature électronique en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de signature électronique en ligne à l'aide de WebSocket et JavaScript Dec 18, 2023 pm 03:09 PM

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.

Analyse approfondie : fonctionnalités monothread dans le langage Go Analyse approfondie : fonctionnalités monothread dans le langage Go Mar 15, 2024 pm 02:09 PM

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

Une plongée approfondie dans les caractères spéciaux courants sous Linux Une plongée approfondie dans les caractères spéciaux courants sous Linux Mar 14, 2024 pm 02:54 PM

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

See all articles