我有問題與JavaScript對象(數組)深拷貝。我讀了很多好方法來處理它。我也知道jQuery有$ .extend API來解決這個問題。但我的問題是:我可以使用JSON stringify和parse方法來解決這個問題嗎?JavaScript深拷貝使用JSON
這裏是我的代碼:
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:我知道,如果沒有所有對象序列化,但我唯一知道的情況是,當對象包含一個屬性,它是功能。任何其他情況?
原諒我可憐的英語,這很好,如果你能指出。
並非所有的對象都可以序列化爲JSON。即使是那些,它似乎不能將它們變成一個字符串,然後解析字符串。但它應該工作得很好。唯一的問題是IE的舊版本,你需要一個polyfill。 –
在這裏檢查http://msdn.microsoft.com/en-us/library/ie/cc836466(v=vs.94).aspx – anand4tech
謝謝!我只知道一個對象不可序列化,如果這個對象包含屬性是一個函數。但是如果其他情況下該對象不可序列化? – user2666750