如何实现一个对象的深拷贝

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)



你可能感兴趣的:(前端笔记)