原生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 相关文章推荐
理解JSON:3分钟课程
Oct 28 Javascript
JS实现双击编辑可修改状态的方法
Aug 14 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
Oct 30 Javascript
纯javascript移动优先的幻灯片效果
Nov 02 Javascript
jquery实现邮箱自动填充提示功能
Nov 17 Javascript
BootStrap制作导航条实例代码
May 06 Javascript
总结jQuery插件开发中的一些要点
May 16 Javascript
微信小程序 PHP后端form表单提交实例详解
Jan 12 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
Mar 13 Javascript
解决vue项目,npm run build后,报路径错的问题
Aug 13 Javascript
解决vue init webpack 下载依赖卡住不动的问题
Nov 09 Javascript
使用原生javascript开发计算器实例代码
Feb 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
一首老MP3,致敬WAR3经典
2021/03/08 魔兽争霸
浅谈PHP 闭包特性在实际应用中的问题
2009/10/30 PHP
php报表之jpgraph柱状图实例代码
2011/08/22 PHP
探讨php中防止SQL注入最好的方法是什么
2013/06/10 PHP
关于js与php互相传值的介绍
2013/06/25 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
ext jquery 简单比较
2010/04/07 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
使用js复制链接中的部分文字的方法
2015/07/30 Javascript
Jquery全选与反选点击执行一次的解决方案
2015/08/14 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
JS给按钮添加跳转功能类似a标签
2017/05/30 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
2018/10/17 NodeJs
JS自定义对象创建与简单使用方法示例
2020/01/15 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
Python实现比较两个文件夹中代码变化的方法
2015/07/10 Python
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
python对于requests的封装方法详解
2019/01/03 Python
python cumsum函数的具体使用
2019/07/29 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
python pip如何手动安装二进制包
2020/09/30 Python
澳大利亚相机之家:Camera House
2017/11/30 全球购物
教师旷工检讨书
2014/01/18 职场文书
兴趣小组活动总结
2014/05/05 职场文书
找工作求职信
2014/07/07 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
班主任2015新年寄语
2014/12/08 职场文书
复兴之路展览观后感
2015/06/02 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang
Java使用jmeter进行压力测试
2021/07/09 Java/Android