原生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 相关文章推荐
js将控件隐藏及display属性的使用介绍
Dec 30 Javascript
javascript判断chrome浏览器的方法
Mar 26 Javascript
js分页工具实例
Jan 28 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
May 03 Javascript
使用控制台破解百小度一个月只准改一次名字
Aug 13 Javascript
第六篇Bootstrap表格样式介绍
Jun 21 Javascript
JavaScript 动态三角函数实例详解
Jan 08 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
Jul 10 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
Jul 29 Javascript
vue中input的v-model清空操作
Sep 06 Javascript
Vue实现图书管理小案例
Dec 03 Vue.js
vue el-upload上传文件的示例代码
Dec 21 Vue.js
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二分法在IP地址查询中的应用
2008/08/12 PHP
PHP容易忘记的知识点分享
2013/04/30 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
php json与xml序列化/反序列化
2013/10/28 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
checkbox勾选判断代码分析
2014/06/11 Javascript
js实现拖拽效果
2015/02/12 Javascript
jquery不常用方法汇总
2015/07/26 Javascript
js轮播图代码分享
2016/07/14 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
详解在Angularjs中ui-sref和$state.go如何传递参数
2017/04/24 Javascript
深入浅析Vue中的slots/scoped slots
2018/04/03 Javascript
vue源码学习之Object.defineProperty 对数组监听
2018/05/30 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
2019/07/27 Javascript
python3音乐播放器简单实现代码
2020/04/20 Python
python中如何使用正则表达式的非贪婪模式示例
2017/10/09 Python
Python实现的建造者模式示例
2018/08/06 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
2019/06/13 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
如何使用python操作vmware
2019/07/27 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
django drf框架自带的路由及最简化的视图
2019/09/10 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
2020/02/10 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
就业自荐书
2013/12/05 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
教师考核表个人总结
2015/02/12 职场文书