原生js实现复制对象、扩展对象 类似jquery中的extend()方法

 更新时间:2014年08月30日 16:11:44   作者:PHPVAR  
jq的extend()方法能很方便的实现扩展对象方法,这里要实现的是:原生js实现复制对象,扩展对象,类似jq中的extend()方法,需要的朋友可以参考下

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>

相关文章

  • 基于canvas粒子系统的构建详解

    基于canvas粒子系统的构建详解

    下面小编就为大家带来一篇基于canvas粒子系统的构建详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Bootstrap学习笔记之css样式设计(1)

    Bootstrap学习笔记之css样式设计(1)

    这篇文章主要为大家详细介绍了bootstrap学习笔记之css样式设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • 微信小程序实现底部弹出模态框

    微信小程序实现底部弹出模态框

    这篇文章主要为大家详细介绍了微信小程序实现底部弹出模态框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • 微信小程序开发(三):返回上一级页面并刷新操作示例【页面栈】

    微信小程序开发(三):返回上一级页面并刷新操作示例【页面栈】

    这篇文章主要介绍了微信小程序开发返回上一级页面并刷新操作,结合实例形式详细分析了微信小程序返回上一级页面并刷新操作方法技巧与相关注意事项,需要的朋友可以参考下
    2020-06-06
  • 详细解析let和const命令

    详细解析let和const命令

    这篇文章主要介绍了详细解析let和const命令,let和const是es6中新增的命令,一般let用来声明变量而const则用来声明常量,更多相关内容感兴趣的小伙伴可以参考一下
    2022-06-06
  • 一文看懂如何简单实现节流函数和防抖函数

    一文看懂如何简单实现节流函数和防抖函数

    这篇文章主要给大家介绍了如何通过一文看懂简单实现节流函数和防抖函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • KnockoutJS 3.X API 第四章之表单value绑定

    KnockoutJS 3.X API 第四章之表单value绑定

    Knockout是一个以数据模型(data model)为基础的能够帮助你创建富文本,响应显示和编辑用户界面的JavaScript类库。这篇文章主要介绍了KnockoutJS 3.X API 第四章之表单value绑定的相关资料,需要的朋友可以参考下
    2016-10-10
  • javascript 模拟坦克大战游戏(html5版)附源码下载

    javascript 模拟坦克大战游戏(html5版)附源码下载

    这篇文章主要介绍了javascript 模拟坦克大战游戏关键点和遇到的问题及实现代码,需要的朋友可以参考下
    2014-04-04
  • JavaScript继承定义与用法实践分析

    JavaScript继承定义与用法实践分析

    这篇文章主要介绍了JavaScript继承定义与用法,结合实例形式分析了JavaScript面向对象程序设计中基类的定义、原型继承以及调用父类构造函数等相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • 详解Typescript 内置的模块导入兼容方式

    详解Typescript 内置的模块导入兼容方式

    这篇文章主要介绍了详解Typescript 内置的模块导入兼容方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05

最新评论