Heim > Web-Frontend > js-Tutorial > js realisiert die gemeinsame Nutzung von Deep-Copy-Code

js realisiert die gemeinsame Nutzung von Deep-Copy-Code

小云云
Freigeben: 2018-02-26 15:28:41
Original
2181 Leute haben es durchsucht

Was die Implementierung von Deep Copy in js betrifft, muss man zunächst verstehen, dass zum Kopieren komplexer Objekte die Idee der Rekursion verwendet wird. Im Folgenden finden Sie eine schrittweise Implementierung und Erklärung durch 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]};
Nach dem Login kopieren

Verwandte Empfehlungen:

Detaillierte Erklärung von Shallow Copy und Deep Copy in PHP

Deep Copy von JavaScript Objekte kopieren

Serialisierung von Deep Copy (Deep Clone) und Shallow Copy (Shallow Clone) von Objekten in Java

Das obige ist der detaillierte Inhalt vonjs realisiert die gemeinsame Nutzung von Deep-Copy-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage