JS 深浅拷贝

首先理解概念

浅拷贝: 只复制对象的基本类型, 对象类型, 仍属于原来的引用。

深拷贝: 不紧复制对象的基本类, 同时也复制原对象中的对象。就是说完全是新对象产生的。

首先看浅拷贝

//浅拷贝
var aAry = ['a','b'];
var b  = aAry;
b[0]='changed';
console.log(aAry);//['changed','b'];

再看深拷贝

//方法一
//Array.prototype.slice()
var a = ['a','b'];
var b = a.slice();
b[0]=1;
console.log(a);//['a','b']

//方法二
//concat()
var a = ['a','b'];
var b = a.concat([]);
b[0]=1;
console.log(a);//['a','b']

//方法三
//JSON.parse(JSON.Stringfly();
var a= ['a','b'];
var b = JSON.parse(JSON.Stringflu(a));
b[0]=1;
console.log(a);//['a','b']
原文地址:https://www.cnblogs.com/niunai007/p/6220158.html