说明:
cloneObj 函数名
参数
target 复制后的对象,注意:1、数据类型和source的相同。2、必须为空
source 被复制的对象
function cloneObj(target,source) {
var names=Object.getOwnPropertyNames(source);
for(var i=0;i<names.length;i++){
var desc=Object.getOwnPropertyDescriptor(source,names[i]);
if(typeof desc.value==="object" && desc.value!==null){
var obj={};
if(Array.isArray(desc.value)){
obj=[];
}
Object.defineProperty(target,names[i],{
enumerable:desc.enumerable,
configurable:desc.configurable,
writable:desc.writable,
value:obj
});
cloneObj(obj,desc.value);
}
}
}