Maison  >  Article  >  interface Web  >  js réalise le partage de code en copie approfondie

js réalise le partage de code en copie approfondie

小云云
小云云original
2018-02-26 15:28:412098parcourir

Concernant l'implémentation de la copie profonde en js, la première chose à comprendre est que pour copier des objets complexes, on utilise l'idée de​​récursion. Ce qui suit est une implémentation et une explication étape par étape via le code.

function deepClone(data1,data2){
        var data2 = data2 || {}; //局部变量data2赋初值为接收的参数或者为一个空对象。
        for(var key in data1){            if(typeof data1[key] === 'object'){ //依次判断data1对象的属性是不是对象
                data2[key] =  (data1[key].constructor===Array) ? [] : {}                //判断要复制的项是对象还是数组
                deepClone(data1[key],data2[key]); //递归实现
            }else {
                data2[key] = data1[key] //如果不是的可以直接相等
            }
        }        return data2;
    }    var json = {"name":"小倪子麻麻","age": "20",arr1:[2,3,4,5]};    var json1 = {};
    json1 = deepClone (json,json1);
    json.arr1.pop();
    console.log(json); //{"name":"小倪子麻麻","age": "20",arr1:[2,3,4]};
    console.log(json1);//{"name":"小倪子麻麻","age": "20",arr1:[2,3,4,5]};

Recommandations associées :

Explication détaillée de la copie superficielle et de la copie profonde en php

Copie approfondie de JavaScript Copie d'objets

Sérialisation de la copie profonde (clone profond) et de la copie superficielle (clone superficiel) d'objets en Java

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:
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