//方法二
function DeepExtend(obj1,obj2){
if(Object.prototype.toString.call(obj1) === ‘[object Object]‘ && Object.prototype.toString.call(obj2) === ‘[object Object]‘){
for( prop2 in obj2){//obj1无值,都有取obj2
if(!obj1[prop2]){
obj1[prop2] =obj2[prop2];
}else{//递归赋值
obj1[prop2]=DeepExtend(obj1[prop2],obj2[prop2]);
}
}
}else if(Object.prototype.toString.call(obj1) === ‘[object Array]‘ && Object.prototype.toString.call(obj2) === ‘[object Array]‘){
// 两个都是数组,进行合并
obj1=obj1.concat(obj2);
}else{//其他情况,取obj2的值
obj1 = obj2;
}
return obj1;
};
//方法三
function extend(des, src, override){
if(src instanceof Array){
for(var i = 0, len = src.length; i < len; i++)
extend(des, src[i], override);
}
for( var i in src){
if(override || !(i in des)){
des[i] = src[i];
}
}
return des;
}