1.對象只有一層是迟隅,可以使用es6的對象擴展
var obj = {a: 123}
var obj1 = {...obj}
2.對象是多層嵌套時
方法一:先將對象轉(zhuǎn)為字符串再解析
var obj2 = {
a: 123,
b: {
c: 4,
}
}
var obj3 = JSON.parse(JSON.stringify(obj2))
方法二:使用循環(huán)將對象中的值一個個取出賦值給新的對象
function deepCopy(obj) {
if(obj && typeof obj === 'object' ) {
var newobj = obj instanceof Array ? [] : {}
for(var item in obj) {
newobj[item] = typeof obj[item] ==='object' ? deepCopy(obj[item]) : obj[item]
}
return newobj
}
}
var arr3 = [1,2,[4,5]]
var arr4 = deepCopy(arr3)