原生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 判断客户端浏览器类型代码
Mar 01 Javascript
表单元素的submit()方法和onsubmit事件应用概述
Feb 01 Javascript
js简易namespace管理器 实例代码
Jun 21 Javascript
JQuery自适应窗口大小导航菜单附源码下载
Sep 01 Javascript
javaScript实现可缩放的显示区效果代码
Oct 26 Javascript
js简单判断flash是否加载完成的方法
Jun 21 Javascript
深入浅出讲解ES6的解构
Aug 03 Javascript
详解jQuery简单的表格应用
Dec 16 Javascript
Vue.js 2.5新特性介绍(推荐)
Oct 24 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
Feb 01 Javascript
Vue.JS实现垂直方向展开、收缩不定高度模块的JS组件
Jun 19 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
Jul 24 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
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
PHP通过串口实现发送短信
2015/07/08 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
php封装json通信接口详解及实例
2017/03/07 PHP
Javascript的构造函数和constructor属性
2010/01/09 Javascript
js window.print实现打印特定控件或内容
2013/09/16 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
2015/11/03 Javascript
jQuery实现简单隔行变色的方法
2016/02/20 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
Javascript 判断两个IP是否在同一网段实例代码
2016/11/28 Javascript
详解js中==与===的区别
2017/01/08 Javascript
AngularJS中$http使用的简单介绍
2017/03/17 Javascript
详解JavaScript按概率随机生成事件
2017/08/02 Javascript
Angular CLI 使用教程指南参考小结
2019/04/10 Javascript
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
在Linux下调试Python代码的各种方法
2015/04/17 Python
python使用PyGame模块播放声音的方法
2015/05/20 Python
Java及python正则表达式详解
2017/12/27 Python
Django Python 获取请求头信息Content-Range的方法
2019/08/06 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
在tensorflow中实现去除不足一个batch的数据
2020/01/20 Python
Python实现链表反转的方法分析【迭代法与递归法】
2020/02/22 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
英国床和浴室商场:Bed & Bath Emporium
2018/05/20 全球购物
新娘父亲婚礼致辞
2014/01/16 职场文书
父亲追悼会答谢词
2014/01/17 职场文书
设计师个人求职信范文
2014/02/02 职场文书
幼师求职自荐信
2014/05/31 职场文书
思想纪律作风整顿剖析材料
2014/10/11 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
2015年复活节活动总结
2015/02/27 职场文书
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA