zl程序教程

您现在的位置是:首页 >  前端

当前栏目

原生js实现复制对象、扩展对象类似jquery中的extend()方法

JSjQuery扩展方法对象 实现 复制 原生
2023-06-13 09:15:44 时间

jq的extend()方法能很方便的实现扩展对象方法,语法如下:$.extend(obj1,boj2,obj3);

现在要实现的是:原生js实现复制对象,扩展对象,类似jq中的extend()方法,具体实例如下:
现有3个对象字面量:

varo1={hello:1,old:555},
o2={
abc:55555555,
hello:2,
fun:function(){
alert(111);
}
},
o3={third:9999};

实现目标:

复制o1对象,把o2,o3的对象属性和方法都扩展进前面复制得到的对象中并输出。

<script>
varo1={hello:1,old:555},
o2={
abc:55555555,
hello:2,
fun:function(){
alert(111);
}
},
o3={third:9999};
functioncloneObj(oldObj){//复制对象方法
if(typeof(oldObj)!="object")returnoldObj;
if(oldObj==null)returnoldObj;
varnewObj=newObject();
for(variinoldObj)
newObj[i]=cloneObj(oldObj[i]);
returnnewObj;
};
functionextendObj(){//扩展对象
varargs=arguments;
if(args.length<2)return;
vartemp=cloneObj(args[0]);//调用复制对象方法
for(varn=1;n<args.length;n++){
for(variinargs[n]){
temp[i]=args[n][i];
}
}
returntemp;
}
vart=extendObj(o1,o2,o3);
console.log(t);
console.log(o1);
console.log(o2);
console.log(o3);
</script>