A-A+

复制对象,扩展对象,实现jquery中的extend()方法

2016年01月07日 前端设计 暂无评论 阅读 6 views 次

下面来看一篇复制对象,扩展对象,实现jquery中的extend()方法例子,希望这篇文章能帮助到大家。

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

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

现有3个对象字面量,代码如下:

  1. var o1={hello:1,old:555},  
  2. o2 = {  
  3. abc: 55555555,  
  4. hello: 2,  
  5. fun: function() {  
  6. alert(111);  
  7. }  
  8. },  
  9. o3={third:9999};  

实现目标:

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

  1. <script>  
  2. var o1={hello:1,old:555},  
  3. o2 = {  
  4. abc: 55555555,  
  5. hello: 2,  
  6. fun: function() {  
  7. alert(111);  
  8. }  
  9. },  
  10. o3={third:9999};  
  11. function cloneObj(oldObj) { //复制对象方法  
  12. if (typeof(oldObj) != 'object') return oldObj;  
  13. if (oldObj == nullreturn oldObj;  
  14. var newObj = new Object();  
  15. for (var i in oldObj)  
  16. newObj[i] = cloneObj(oldObj[i]);  
  17. return newObj;  
  18. };  
  19. function extendObj() { //扩展对象  
  20. var args = arguments;  
  21. if (args.length < 2) return;  
  22. var temp = cloneObj(args[0]); //调用复制对象方法  
  23. for (var n = 1; n < args.length; n++) {  
  24. for (var i in args[n]) {  
  25. temp[i] = args[n][i];  
  26. }  
  27. }  
  28. return temp;  
  29. }  
  30. var t=extendObj(o1,o2,o3);  
  31. console.log(t);  
  32. console.log(o1);  
  33. console.log(o2);  
  34. console.log(o3);  
  35. </script>  
标签:

给我留言