原生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 相关文章推荐
IE7提供XMLHttpRequest对象为兼容
Mar 08 Javascript
javascript 定义新对象方法
Feb 20 Javascript
Javascript 面向对象 对象(Object)
May 13 Javascript
JS匀速运动演示示例代码
Nov 26 Javascript
javaScript中with函数用法实例分析
Jun 08 Javascript
JavaScript的Backbone.js框架入门学习指引
May 07 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
Jan 13 Javascript
浅析Angular2子模块以及异步加载
Apr 24 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
Jun 30 Javascript
解决vue热替换失效的根本原因
Sep 19 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
Apr 15 Javascript
JS如何实现动态添加的元素绑定事件
Nov 12 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
关于PHP5 Session生命周期介绍
2010/03/02 PHP
php 面试碰到过的问题 在此做下记录
2011/06/09 PHP
PHP面向对象——访问修饰符介绍
2012/11/08 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
2016/01/11 PHP
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
JavaSript中变量的作用域闭包的深入理解
2014/05/12 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
PHP 实现一种多文件上传的方法
2017/09/20 Javascript
three.js中3D视野的缩放实现代码
2017/11/16 Javascript
vue实现自定义日期组件功能的实例代码
2018/11/06 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
2019/10/29 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
pandas 对series和dataframe进行排序的实例
2018/06/09 Python
python3.6环境安装+pip环境配置教程图文详解
2019/06/20 Python
python元组和字典的内建函数实例详解
2019/10/22 Python
如何使用Python抓取网页tag操作
2020/02/14 Python
python中数据库like模糊查询方式
2020/03/02 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
C++如何引用一个已经定义过的全局变量
2014/08/25 面试题
学习雷锋演讲稿
2014/05/10 职场文书
村道德模范事迹材料
2014/08/28 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
2019单位介绍信怎么写
2019/06/24 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电
Python多线程 Queue 模块常见用法
2021/07/04 Python