原生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 相关文章推荐
javascript 树控件 比较好用
Jun 11 Javascript
jQuery入门问答 整理的几个常见的初学者问题
Feb 22 Javascript
javascript下数值型比较难点说明
Jun 07 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
Jan 13 Javascript
JavaScript实现的简单幂函数实例
Apr 17 Javascript
深入理解JS addLoadEvent函数
May 20 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
May 27 Javascript
解析Json字符串的三种方法日常常用
May 02 Javascript
vue 登录滑动验证实现代码
Aug 24 Javascript
Webpack之tree-starking 解析
Sep 11 Javascript
layui的数据表格+springmvc实现搜索功能的例子
Sep 28 Javascript
详解webpack的文件监听实现(热更新)
Sep 11 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
非常不错的MySQL优化的8条经验
2008/03/24 PHP
php 学习资料零碎东西
2010/12/04 PHP
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
慎用 somefunction.prototype 分析
2009/06/02 Javascript
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
js返回上一页并刷新代码整理
2012/12/21 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
javascript的创建多行字符串的7种方法
2014/04/29 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
Prototype框架详解
2015/11/25 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
js实现一个页面多个倒计时的3种方法
2019/02/25 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
2019/08/20 Javascript
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
python字符串常用方法
2018/06/14 Python
python使用requests.session模拟登录
2019/08/09 Python
python模拟哔哩哔哩滑块登入验证的实现
2020/04/24 Python
Django配置Bootstrap, js实现过程详解
2020/10/13 Python
简历上的自我评价
2014/02/03 职场文书
信用社员工先进事迹材料
2014/02/04 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
社会公德演讲稿
2014/05/20 职场文书
计算机网络及管理学专业求职信
2014/06/05 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
对外汉语专业大学生职业生涯规划书
2014/10/11 职场文书
迎新晚会主持词开场白
2015/05/28 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
《童年的发现》教学反思
2016/02/18 职场文书
thinkphp 获取控制器及控制器方法
2021/04/16 PHP
Python制作春联的示例代码
2022/01/22 Python
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL