1. 程式人生 > >如何實現一個物件的深拷貝

如何實現一個物件的深拷貝

var date = {
a:[1,2],
b:["a","c",{
f:"cc",
d:"dd"
}]

}

/*

 *date   傳入物件

 * deep 是否深度拷貝 是為ture 不是可以不填 

*/

var extend = function(date,deep){
var o = date instanceof Array ? []:{}  
// Array.isArray(date)   date instanceof Array date.length && date.join && date.constructor === Array  判斷是不是陣列 (判斷陣列的幾種方式)
for(var key in date){
var val = date[key]
o[key] = (deep&&typeof val ==="object")?extend(val,deep):val
}

return o

}

var o1 = extend(date,true)

console.log(date)