原生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实现点击后将文字或图片复制到剪贴板的方法
Aug 04 Javascript
JS实现HTML表格排序功能
Aug 05 Javascript
浅谈JS的基础类型与引用类型
Sep 13 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
Nov 05 Javascript
JavaScript仿微博输入框效果(案例分析)
Dec 06 Javascript
layer实现弹窗提交信息
Dec 12 Javascript
JavaScript日期对象(Date)基本用法示例
Jan 18 Javascript
原生js开发的日历插件
Feb 04 Javascript
javascript中BOM基础知识总结
Feb 14 Javascript
Vue.js中该如何自己维护路由跳转记录
May 19 Javascript
element-ui中按需引入的实现
Dec 25 Javascript
关于JavaScript轮播图的实现
Nov 20 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
PHP 关于访问控制的和运算符优先级介绍
2013/07/08 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
2012/10/15 Javascript
jquery自定义滚动条插件示例分享
2014/02/21 Javascript
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
浅谈Sublime Text 3运行JavaScript控制台
2016/06/06 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
angular框架实现全选与单选chekbox的自定义
2017/07/06 Javascript
BACKBONE.JS 简单入门范例
2017/10/17 Javascript
基于vue.js实现的分页
2018/03/13 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
2018/10/18 Javascript
微信小程序实现蒙版弹窗效果
2018/11/01 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
2019/08/27 jQuery
Vue 实现登录界面验证码功能
2020/01/03 Javascript
php使用递归与迭代实现快速排序示例
2014/01/23 Python
python操作redis的方法
2015/07/07 Python
python实现斐波那契数列的方法示例
2017/01/12 Python
pyenv命令管理多个Python版本
2017/03/26 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
2021/02/04 Python
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
公司薪酬管理制度
2014/01/31 职场文书
经济管理专业求职信
2014/06/09 职场文书
中央空调节能方案
2014/06/15 职场文书
2016年大学迎新晚会工作总结
2015/10/15 职场文书
小学班级标语口号大全
2015/12/26 职场文书
PHP中strval()函数实例用法
2021/06/07 PHP