原生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 相关文章推荐
onsubmit阻止form表单提交与onclick的相关操作
Sep 03 Javascript
jQuery随便控制任意div隐藏的方法
Jun 28 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
Oct 25 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
Mar 06 Javascript
关于JS中的apply,call,bind的深入解析
Apr 05 Javascript
利用Angularjs中模块ui-route管理状态的方法
Dec 27 Javascript
详解webpack + vue + node 打造单页面(入门篇)
Sep 23 Javascript
webpack4 处理SCSS的方法示例
Sep 03 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
Mar 19 Javascript
angularjs自定义过滤器demo示例
Aug 24 Javascript
jquery实现烟花效果(面向对象)
Mar 10 jQuery
vue 出现data-v-xxx的原因及解决
Aug 04 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实现检测客户端是否使用代理服务器及其匿名级别
2015/01/07 PHP
详解WordPress中给链接添加查询字符串的方法
2015/12/18 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
2017/06/13 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
利用WebBrowser彻底解决Web打印问题(包括后台打印)
2009/06/22 Javascript
深入探讨javascript函数式编程
2015/10/11 Javascript
arcgis for js 修改infowindow样式的方法
2016/11/02 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
微信小程序实现无限滚动列表
2020/05/29 Javascript
vue实现滑动超出指定距离回顶部功能
2019/07/31 Javascript
编程语言Python的发展史
2014/09/26 Python
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
Python的Urllib库的基本使用教程
2015/04/30 Python
Python3实现从文件中读取指定行的方法
2015/05/22 Python
Python中的下划线详解
2015/06/24 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
Python实现八皇后问题示例代码
2018/12/09 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
python中sys模块是做什么用的
2020/08/16 Python
CSS3制作Dropdown下拉菜单的方法
2015/07/18 HTML / CSS
TobyDeals美国:在电子产品上获得最好的优惠和折扣
2019/08/11 全球购物
AOP的定义以及作用
2013/09/08 面试题
国税会议欢迎词
2014/01/16 职场文书
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
环保倡议书400字
2014/05/15 职场文书
新农村建设标语
2014/06/24 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
店铺转让协议书
2015/01/29 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
eclipse创建项目没有dynamic web的解决方法
2021/06/24 Java/Android
css中有哪些方式可以隐藏页面元素及区别
2022/06/16 HTML / CSS