1. 通過JSON.stringify和JSON.parse實現:不能完全解決深層次對象的嵌套的克隆。
var newVal=JSON.parse(JSON.stringify(val))
2.封裝一個函數: 通過遞歸遍歷,根據數組和對象不同做出不同的深克隆區分。
function deepCopy(obj){
var newObj=isArray(obj)?[]:{}
for(var key in obj){
if(isObject(obj[key])){
newObj[key]=deepCopy(obj[key])
}else{
newObj[key]=obj[key]
}
}
}
function isArray(val){
retrun Object.prototype.toString.call(val) ==='[object Array]'
}
function isObject(val){
retrun typeof val ==='object' && !val==null
}