原生js实现复制对象、扩展对象 类似jquery中的extend()方法教程
程序员文章站
2022-06-05 21:14:13
jq的extend()方法能很方便的实现扩展对象方法,语法如下:$.extend(obj1,boj2,obj3);
现在要实现的是:原生js实现复制对象,扩展对象,类似jq中的e...
jq的extend()方法能很方便的实现扩展对象方法,语法如下:$.extend(obj1,boj2,obj3);
现在要实现的是:原生js实现复制对象,扩展对象,类似jq中的extend()方法,具体实例如下:
现有3个对象字面量:
var o1={hello:1,old:555}, o2 = { abc: 55555555, hello: 2, fun: function() { alert(111); } }, o3={third:9999};
实现目标:
复制o1对象,把 o2,o3的对象属性和方法都扩展进前面复制得到的对象中并输出。
<script> var o1={hello:1,old:555}, o2 = { abc: 55555555, hello: 2, fun: function() { alert(111); } }, o3={third:9999}; function cloneobj(oldobj) { //复制对象方法 if (typeof(oldobj) != 'object') return oldobj; if (oldobj == null) return oldobj; var newobj = new object(); for (var i in oldobj) newobj[i] = cloneobj(oldobj[i]); return newobj; }; function extendobj() { //扩展对象 var args = arguments; if (args.length < 2) return; var temp = cloneobj(args[0]); //调用复制对象方法 for (var n = 1; n < args.length; n++) { for (var i in args[n]) { temp[i] = args[n][i]; } } return temp; } var t=extendobj(o1,o2,o3); console.log(t); console.log(o1); console.log(o2); console.log(o3); </script>