企业面试真题--019
2023-09-14 09:02:35 时间
使用原生JS实现如下代码:var obj =$.extend(true, obj1, obj2);
//首先需要了解$.extend(true, obj1, obj2)这个方法的作用
//第一个参数:true, 表示在合并对象时, 进行深拷贝, 默认为浅拷贝
//最终将obj合并到target对象上去
function extend(deep, target, obj){
if(typeof deep == "boolean" && deep===true){
for(var attr in obj){
//若均为对象, 则递归调用, 进行深克隆
if( typeof target[attr] === "object" && typeof obj[attr] === "object") {
extend(true, target[attr], obj[attr]);
}
//若obj[attr]为对象, 而target[attr]不是对象,或不存在
else if(typeof obj[attr] === "object"){
//克隆obj[attr]副本, 赋值给target[attr]
if(obj[attr] instanceof Array){
target[attr] = extend(true, [], obj[attr]);
} else {
target[attr] = extend(true, {}, obj[attr]);
}
}
//若obj[attr]为普通数据类型(无论target[attr]]什么类型), 直接覆盖
else {
target[attr] = obj[attr];
}
}
}
//若deep参数为false, 直接浅克隆
if(typeof deep == "boolean" && deep===false){
for(var attr in obj){
target[attr] = obj[attr];
}
}
return target; //为处理方便, 返回target对象
}
相关文章
- 【企业架构师】成为首席企业架构师需要什么?
- 又一家晶圆代工企业IPO,成立4年全球排名第15,盈利要等到2026年
- 深圳MES系统如何助力注塑企业实现数字化发展
- 老牌数仓企业 Teradata 正式退出中国
- 微软推出新服务,扩大企业对其威胁情报库的访问权限
- Oracle升级IE8,助力企业运营提速(oracleie8)
- 略谈企业的开源战略
- IBM中国研究院院长沈晓卫:从编程时代迈向认知时代,没有一家企业能独担此任
- 博通勾搭中国企业,称未来物联网靠中国
- 突破Oracle企业面试之路(oracle企业面试题)
- 利用Oracle SaaS满足企业存储需求(oracle saas)
- Oracle 12C新版本查询强化,助力企业数据分析(oracle12C查询)
- 降本增效利器:腾讯会议2021版在线培训指南,助力企业在线培训灵活开展
- 没人送快递了!日本拟放宽对无人机企业的监管政策