A-A+
复制对象,扩展对象,实现jquery中的extend()方法
下面来看一篇复制对象,扩展对象,实现jquery中的extend()方法例子,希望这篇文章能帮助到大家。
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>