原生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 相关文章推荐
javscript对象原型的一些看法
Sep 19 Javascript
jquery怎样实现ajax联动框(一)
Mar 08 Javascript
$(document).ready(function() {})不执行初始化脚本
Jun 19 Javascript
Jquery api 速查表分享
Jan 12 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
Aug 18 Javascript
详解AngularJS实现表单验证
Dec 10 Javascript
用JavaScript获取页面文档内容的实现代码
Jun 10 Javascript
JavaScript简单获取系统当前时间完整示例
Aug 02 Javascript
jquery与js实现全选功能的区别
Jun 11 jQuery
基于JavaScript实现报警器提示音效果
Oct 27 Javascript
echarts实现折线图的拖拽效果
Dec 19 Javascript
vue使用canvas实现移动端手写签名
Sep 22 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
使用PHP编写的SVN类
2013/07/18 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
实现laravel 插入操作日志到数据库的方法
2019/10/11 PHP
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
javascript实现des解密加密全过程
2014/04/03 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
JavaScript给url网址进行encode编码的方法
2015/03/18 Javascript
js+html5通过canvas指定开始和结束点绘制线条的方法
2015/06/05 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
2016/05/17 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
Javascript点击按钮随机改变数字与其颜色
2016/09/01 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
2018/07/24 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
JS左右无缝轮播功能完整实例
2019/05/16 Javascript
layui form表单提交之后重新加载数据表格的方法
2019/09/11 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
python实现在每个独立进程中运行一个函数的方法
2015/04/23 Python
Python字符串和字典相关操作的实例详解
2017/09/23 Python
Python使用SQLite和Excel操作进行数据分析
2018/01/20 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
简单实现python聊天程序
2018/04/01 Python
Python比较2个时间大小的实现方法
2018/04/10 Python
Python实现的求解最小公倍数算法示例
2018/05/03 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
详解Python self 参数
2019/08/30 Python
flask框架中的cookie和session使用
2021/01/31 Python
新奇的小玩意:IWOOT
2016/07/21 全球购物
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
新年晚会主持词
2014/03/24 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
文艺节目主持词
2015/07/06 职场文书
JavaScript的function函数详细介绍
2021/11/20 Javascript
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技