JSON.parse(JSON.stringify)深拷贝的局限 - pod4g/tool GitHub Wiki

  1. 可以用这个技巧进行数据对象的拷贝
  2. 如果被拷贝的对象中有function,则拷贝之后的对象就会丢失这个function
  3. 如果被拷贝的对象中有正则表达式,则拷贝之后的对象正则表达式会变成Object
  4. 好文你所不知道的JSON.stringify
let a = {name: 'liyanfeng', sayName: function() {alert(this.name)}, numberReg: /\d+/}
let b = JSON.parse(JSON.stringify(a))
// sayName丢失,numberReg变为了对象
console.dir(b) // {name: 'liyanfeng', numberReg: {}}