Skip to content

JSON.parse(JSON.stringify)深拷贝的局限

LYF edited this page Aug 17, 2017 · 3 revisions
  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: {}} 
Clone this wiki locally