首页 » 乱七八糟 » [JS]对象复制的奇技淫巧一则

[JS]对象复制的奇技淫巧一则

Javascript的对象操作,直接用 “=” 结果是对象的一个引用,任意一个引用的改变都会让原对象产生变化。

而很多时候我们需要对一个对象进行“复制”,最直观的方法是遍历原对象,这也是最实际的方法。

而在这我们给出一个“奇技淫巧”,仅适用于对象成员都是基本数据类型。
(适用于诸如 对象模板 等应用场景)

var a = {
  'a':1
};

var b = JSON.parse(JSON.stringify(a));
b.a=2;

console.log(a); //Object { a=1}
console.log(b); //Object { a=2}

可以发现,经过序列化/反序列化操作,原对象被“简单”的复制了一遍(主要是因为序列化以后是string简单类型)。
这个方法代码简单,具体时间效率还需要实际测试一下。