Extend function
从《 EssentialJavaScript Design Patterns 》中学习到一个,就是如果某个属性是对象,则继续深复制。
function extend(destination,source){
var toString = Object.prototype.toString,
objTest = toString.call({});
for( var property pertyin source) {
if(source[property] && objTest == toString.call(source[pro])){
destination[property] = destination[property] || {}
extend(destination[property],source[property]);
}else{
destination[property] = source[property]
}
}
return destination;
};
对于理解递归或者是对象扩展都挺好,遗憾的是不能像jQuery 那样扩展多个,以及合并两个到一个空对象中去。
Written on April 12, 2015