var obj1 = { x: 1, y: { a: 1, b: 0, c: [1, 2, 3] } };

var obj2 = JSON.parse(JSON.stringify(obj1));

此时obj1和obj2指向的是两个不同的对象,即地址不一样。

1. 适合情况
 JSON对象的深度克隆。方法是先JSON.stringify() 转为json字符串, 再JSON.parse() 转为json数组

2. 缺点:
  a. 如果你的对象里有函数, 函数无法被拷贝下来
  b. 无法拷贝copyObj对象原型链上的属性和方法

 

 

查看更多方法