原生js实现复制对象、扩展对象类似jquery中的extend()方法
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>
相关文章
- JS中鼠标拖拽div(2)(setCapture()方法和releaseCapture()方法)
- 使用 Dapr JS SDK 让 Nest.js 集成 Dapr(微软开源的分布式应用程序运行时)
- JS跳转代码_js中跳转页面路径
- Node.js
- js如何生成二维码_jquery 生成二维码无法识别
- jQuery.validationEngine.js学习[通俗易懂]
- 双向链表[js实现] 【7】
- jQuery表单插件jquery.form.js详解编程语言
- jquery以及js实现option左移右移详解编程语言
- jQuery图片切换插件jquery.cycle.js详解编程语言
- Jquery 给Js动态新添加的元素 绑定的点击事件详解编程语言
- jQuery延迟加载(懒加载)插件 – jquery.lazyload.js详解编程语言
- js jquery 页面加载初始化方法详解编程语言
- 使用JS在网页中连接Oracle数据库(js网页链接oracle)
- [js]轻便的XMLHttpRequest应用函数:downloadUrl()
- Js动态创建div
- 模仿JQuery.extend函数扩展自己对象的js代码
- Jquery实战_读书笔记1—选择jQuery
- JS函数验证总结(方便js客户端输入验证)
- Jquery与JS两种方法仿twitter/新浪微博高度自适应无缝滚动实现代码
- jQuery.getScript加载同域JS的代码
- 利用jquery的获取JS文件中的字符串内容
- js+JQuery返回顶部功能如何实现
- 有关于JS辅助函数inherit()的问题
- 基于jquery的9行js轻松实现tab控件示例
- js实现幻灯片效果(基于jquery插件)
- js点击出现悬浮窗效果不使用JQuery插件
- JS将所有对象s的属性复制给对象r(原生js+jquery)
- js/jquery获取文本框输入焦点的方法
- JS中类或对象的定义说明
- Jquery插件分享之气泡形提示控件grumble.js
- AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
- node.js中使用socket.io制作命名空间
- 输入框过滤非数字的js代码