标签:epc div typeof function xtend target asc const des
拷贝,分深拷贝和浅拷贝。
在我们了解过的框架中,jquery的$.extend()可以根据第一个传入的参数区分拷贝类型;
function shallowCopy(srcObj, destObj){ var destObj = destObj || {}; for(var key in srcObj){ if(!destObj.hasOwnProperty(key)){ destObj[key] = srcObj[key]; } } return destObj; }
浅拷贝只是一种简单的循环赋值,所以运行效率非常高,速度快。
function deepCopy(srcObj, destObj){ var destObj = destObj || {}; for(var key in srcObj){ if(!destObj.hasOwnProperty(key)){ if(typeof srcObj[key] == ‘object‘){ destObj[key] = (srcObj[key].constructor === Array) ? [] : {}; deepCopy(srcObj[key], destObj[key]); }else{ destObj[key] = srcObj[key]; } } } return destObj; }
深拷贝的核心就是递归。
标签:epc div typeof function xtend target asc const des
原文地址:http://www.cnblogs.com/smss/p/6407642.html