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


Posted in Javascript onAugust 30, 2014

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>
Javascript 相关文章推荐
IE8 中使用加速器(Activities)
May 14 Javascript
基于jQuery的遍历同id元素 并响应事件的代码
Jun 14 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
Aug 02 Javascript
使用js修改客户端注册表的方法
Aug 09 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
May 14 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
Oct 30 Javascript
jQuery多条件筛选如何实现
Nov 04 Javascript
jQuery插件扩展extend的简单实现原理
Jun 24 Javascript
浅谈js中的in-for循环
Jun 28 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
Mar 19 Javascript
npm的lock机制解析
Jun 20 Javascript
vue组件入门知识全梳理
Sep 21 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
Aug 30 #Javascript
仿百度联盟对联广告实现代码
Aug 30 #Javascript
jQuery针对各类元素操作基础教程
Aug 29 #Javascript
jQuery事件用法实例汇总
Aug 29 #Javascript
laytpl 精致巧妙的JavaScript模板引擎
Aug 29 #Javascript
jQuery动画特效实例教程
Aug 29 #Javascript
jQuery实用函数用法总结
Aug 29 #Javascript
You might like
PHP新手上路(七)
2006/10/09 PHP
7个超级实用的PHP代码片段
2011/07/11 PHP
教你如何使用php session
2013/10/28 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
2014/10/17 PHP
php简单复制文件的方法
2016/05/09 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
CCPry JS类库 代码
2009/10/30 Javascript
jquery.validate使用攻略 第三部
2010/07/01 Javascript
js实现图片拖动改变顺序附图
2014/05/13 Javascript
JavaScript操作表单实例讲解(上)
2016/06/20 Javascript
在javascript中使用com组件的简单实现方法
2016/08/17 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
2016/08/27 Javascript
用AngularJS来实现监察表单按钮的禁用效果
2016/11/02 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
Express使用html模板的详细代码
2017/09/18 Javascript
Vue组件之极简的地址选择器的实现
2018/05/31 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
2019/03/05 Javascript
通过循环优化 JavaScript 程序
2019/06/24 Javascript
使用Python脚本操作MongoDB的教程
2015/04/16 Python
解决Python2.7读写文件中的中文乱码问题
2018/04/12 Python
Python使用cx_Oracle模块操作Oracle数据库详解
2018/05/07 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
Python是怎样处理json模块的
2020/07/16 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
Python容器类型公共方法总结
2020/08/19 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
中国高端家电购物商城:顺电
2018/03/04 全球购物
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
大一学生假期实习的自我评价
2013/10/12 职场文书
建设工程授权委托书
2014/09/22 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
2014年维稳工作总结
2014/11/18 职场文书
2015年财务工作总结范文
2015/03/31 职场文书
opencv 分类白天与夜景视频的方法
2021/06/05 Python
python如何读取和存储dict()与.json格式文件
2022/06/25 Python