浅拷贝和深拷贝一般说的是引用类型对象。
1、浅拷贝
浅拷贝引用复制对象的地址,修改了引用地址的值两个引用对象也发生变化,如下
var m = { a: 10, b: 20 }
var n = m;
n.a = 15;
console.log(m)
返回:{a: 15, b: 20}
浅拷贝的方法:
1.1、直接=赋值
1.2、Object.assign({}, 克隆对象)
1.3、展开运算符{… 克隆对象}
1.4、concat()、slice()空
2、深拷贝
对象引用的基本类型的值全部copy一份,引用地址更换,从新生成一个对象。
深拷贝的方法:
1、先转成字符串在转回来 JSON.parse(JSON.stringify(obj1))
2、递归拷贝
1.3、 Object.create(oldObj)