原生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 布尔操作符解析  &amp;&amp; || !
Aug 10 Javascript
现如今最流行的JavaScript代码规范
Mar 08 Javascript
jQuery结合HTML5制作的爱心树表白动画
Feb 01 Javascript
jQuery实现的动态伸缩导航菜单实例
May 07 Javascript
浅谈jQuery hover(over, out)事件函数
Dec 03 Javascript
JavaScript中日常收集常见的10种错误(推荐)
Jan 08 Javascript
使用原生js写ajax实例(推荐)
May 31 Javascript
利用nvm管理多个版本的node.js与npm详解
Nov 02 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
Mar 08 Javascript
微信小程序实现的一键连接wifi功能示例
Apr 24 Javascript
js实现简易点击切换显示或隐藏
Nov 29 Javascript
原生JS实现pc端轮播图效果
Dec 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
Smarty变量用法详解
2016/05/11 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
2020/06/05 PHP
JS 事件绑定函数代码
2010/04/28 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
jquery修改网页背景颜色通过css方法实现
2014/06/06 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
2016/06/07 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
使用canvas及js简单生成验证码方法
2017/04/02 Javascript
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
详解微信小程序 登录获取unionid
2017/06/27 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
2017/11/21 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
js实现简单的打印表格
2020/01/15 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
python使用nntp读取新闻组内容的方法
2015/05/08 Python
讲解Python中的标识运算符
2015/05/14 Python
python实现数独算法实例
2015/06/09 Python
TensorFlow深度学习之卷积神经网络CNN
2018/03/09 Python
Python在for循环中更改list值的方法【推荐】
2018/08/17 Python
python使用PyQt5的简单方法
2019/02/27 Python
全面解析CSS Media媒体查询使用操作(推荐)
2017/08/15 HTML / CSS
HTML5获取当前地理位置并在百度地图上展示的实例
2020/07/10 HTML / CSS
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
朗仕(Lab series)英国官网:雅诗兰黛集团男士专属护肤品牌
2017/11/28 全球购物
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
个人党性剖析材料
2014/02/03 职场文书
2014年母亲节演讲稿范文
2014/05/07 职场文书
实习介绍信范文
2015/05/05 职场文书
Python一些基本的图像操作和处理总结
2021/06/23 Python