javascript使用JSON进行深拷贝。

9 浏览
0 Comments

javascript使用JSON进行深拷贝。

我在处理JavaScript对象(数组)的深拷贝时遇到了问题。我已经阅读了很多解决方法,并且我也知道jQuery有一个$.extend API来解决这个问题。但是我的问题是:我是否可以只使用JSON stringify和parse方法来解决这个问题?

这是我的代码:

function deepCopy(oldValue) { 
  var newValue
  strValue = JSON.stringify(oldValue)
  return newValue = JSON.parse(strValue)
}
var a = {
  b: 'b',
  c: [1,2,4],
  d: null
}
copy = deepCopy(a)
console.log(a === copy) // false
console.log(a.c === copy.c) // false

PS:我知道如果不是所有对象都是可序列化的,但我唯一知道的情况是对象包含一个函数属性。还有其他情况吗?

0