基本类型:undefined
、null
、string
、number
、boolean
、symbo(ES6)
普通基本类型:undefined
、null
、symbol(ES6)
特殊基本包装类型:string
、number
、boolean
引用类型:Object
、Array
、RegExp
、Date
、Function
var deepCopy = function (obj) {
var newObj = obj instanceof Array ? [] : {};
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
var states = obj[key] && (obj[key].constructor === Object || obj[key].constructor === Array);
newObj[key] = states ? deepCopy(obj[key]) : obj[key];
}
}
return newObj;
}
参考:
JS DeepCopy深复制的两种方式,并解决循环引用、Date、RegExp对象的深复制
js对象深复制的方法总结(包装对象,Date对象,正则对象)