话不多说,直接上代码
var a = {
a1: '123',
a2: 1,
a3: {
a11: '321',
a22: 2,
a33: {
a331: '456',
a332: [1, 2, 3],
a333: {
a3331: true,
a3332: null,
a3333: function() {
console.log(1)
}
// a3333:testFunc
}
}
},
a4: undefined
}
function deepCopyObj(obj) { //对象深拷贝
var newObj = {};
for (var key in obj) {
if (Object.prototype.toString.call(obj[key]) == '[object Object]') {
var newChildObj = deepCopyObj(obj[key]);
newObj[key] = newChildObj;
} else {
newObj[key] = obj[key];
}
}
return newObj;
}
var aCopy = deepCopyObj(a);
复制简单对象的话:
var a = {a:'a'};
var b = JSON.parse(JSON.stringify(a));
这样就可以了,这种undefined和function会忽略。