浅拷贝
拷贝对象的内存地址,新旧对象共享同一块内存,修改新对象会导致旧对象也改变。
1 | var obj = { a: {a:"kobe",b:39} }; |
深拷贝
创造一个一模一样的对象,,新旧对象不共享同一块内存,修改新对象不会导致旧对象改变。
递归实现深拷贝
1 | function clone(target) { |
JSON.parse(JSON.stringify())
1 | function clone(target){ |
原理: 用JSON.stringify将对象转成JSON字符串,再用JSON.parse()把字符串解析成对象,一去一来,新的对象产生了,而且对象会开辟新的栈,实现深拷贝。
这种方法虽然可以实现数组或对象深拷贝,但不能处理函数。