原生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 相关文章推荐
jQuery对表单元素的取值和赋值操作代码
May 19 Javascript
jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
Jul 28 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
Aug 02 Javascript
js带点自动图片轮播幻灯片特效代码分享
Sep 07 Javascript
jQuery检测滚动条是否到达底部
Dec 15 Javascript
bootstrap实现弹窗和拖动效果
Jan 03 Javascript
详解Bootstrap glyphicons字体图标
Jan 04 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
Jul 11 Javascript
浅谈vue+webpack项目调试方法步骤
Sep 11 Javascript
webpack-mvc 传统多页面组件化开发详解
May 07 Javascript
微信小程序文字显示换行问题
Jul 28 Javascript
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
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中输出转义JavaScript代码的实现代码
2011/04/22 PHP
基于Zend的Captcha机制的应用
2013/05/02 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
2019/08/03 PHP
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
jquery实现弹出窗口效果的实例代码
2013/11/28 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
2014/04/14 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
在vue中给列表中的奇数行添加class的实现方法
2018/09/05 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
python随机生成指定长度密码的方法
2015/04/04 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
python反编译学习之字节码详解
2019/05/19 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
pytorch SENet实现案例
2020/06/24 Python
css3 伪元素和伪类选择器详解
2014/09/04 HTML / CSS
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
Capitol Lighting的1800lighting.com:住宅和商业照明
2019/04/10 全球购物
美国在线肉类和海鲜配送:Crowd Cow
2020/10/02 全球购物
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
纬创Java面试题笔试题
2014/10/02 面试题
工程承包协议书
2014/04/22 职场文书
新书发布会策划方案
2014/06/09 职场文书
小学信息技术教学反思
2016/02/16 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers