jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析


Posted in jQuery onMarch 06, 2019

本文实例讲述了jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法。分享给大家供大家参考,具体如下:

语法:jQuery.extend( [deep ], target, object1 [, objectN ] )

深浅拷贝对应的参数就是[deep],是可选的,为true或false。默认情况是false(浅拷贝),并且false是不能够显示的写出来的。如果想写,只能写true(深拷贝)

测试例子:

var object1 = {};
var object2 = {
  b:{
    mm:333
  },
  c:100
};
console.log('原来的object1--->'+JSON.stringify(object1));
console.log('原来的object2--->'+JSON.stringify(object2));
$.extend(true,object1, object2);
object1.b.mm = 600;
console.log('新的object1--->'+JSON.stringify(object1));
console.log('新的object2--->'+JSON.stringify(object2));

测试结果

jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析

由测试结果知道,jQuery中$.extend(true,object1, object2);可以深拷贝对象,拷贝之后,改变其中一个对象的属性值,对另外一个没有影响。

接着在继续深入理解

测试例子

var object1 = {
  a: 0,
  b: {
    gg: 11,
    mm: 22
  }
};
var object2 = {
  b: {
    mm: 333
  },
  c: 100
};
//默认情况浅拷贝
//object1--->{"apple":0,"banana":{"price":200},"cherry":97,"durian":100}
//object2的banner覆盖了object1的banner,但是weight属性未被继承
//$.extend(object1, object2);
//深拷贝
//object1--->{"apple":0,"banana":{"weight":52,"price":200},"cherry":97,"durian":100}
//object2的banner覆盖了object1的banner,但是weight属性也被继承了呦
$.extend(true,object1, object2);
console.log('原来的object1--->'+JSON.stringify(object1));
console.log('原来的object2--->'+JSON.stringify(object2));
object1.b.mm = 600;
console.log('新的object1--->'+JSON.stringify(object1));
console.log('新的object2--->'+JSON.stringify(object2));

测试结果

jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jquery.form.js异步提交表单详解
Apr 25 jQuery
jquery仿京东商品放大浏览页面
Jun 06 jQuery
运用jQuery写的验证表单(实例讲解)
Jul 06 jQuery
jQuery第一次运行页面默认触发点击事件的实例
Jan 10 jQuery
jQuery中的$是什么意思及 $. 和 $().的区别
Apr 20 jQuery
菊花转动的jquery加载动画效果
Aug 19 jQuery
jQuery+vue.js实现的多选下拉列表功能示例
Jan 15 jQuery
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
May 13 jQuery
jQuery中DOM常见操作实例小结
Aug 01 jQuery
jquery制作的移动端购物车效果完整示例
Feb 24 jQuery
jquery插件懒加载的示例
Oct 24 jQuery
jquery实现穿梭框功能
Jan 19 jQuery
[jQuery] 事件和动画详解
Mar 05 #jQuery
jQuery实现的导航条点击后高亮显示功能示例
Mar 04 #jQuery
Vue CLI3.0中使用jQuery和Bootstrap的方法
Feb 28 #jQuery
jQuery.parseJSON()函数详解
Feb 28 #jQuery
jQuery each和js forEach用法比较
Feb 27 #jQuery
jQuery中each和js中forEach的区别分析
Feb 27 #jQuery
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
Feb 27 #jQuery
You might like
php数组应用之比较两个时间的相减排序
2008/08/18 PHP
php 数组处理函数extract详解及实例代码
2016/11/23 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
深入探究JavaScript中for循环的效率问题及相关优化
2016/03/13 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
vue双向绑定及观察者模式详解
2019/03/19 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
2019/04/29 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
vue实现购物车案例
2020/05/30 Javascript
vue将文件/图片批量打包下载zip的教程
2020/10/21 Javascript
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
python简单实现刷新智联简历
2016/03/30 Python
python库matplotlib绘制坐标图
2019/10/18 Python
python计算无向图节点度的实例代码
2019/11/22 Python
python如何使用代码运行助手
2020/07/03 Python
python else语句在循环中的运用详解
2020/07/06 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
Java面向对象面试题
2016/12/26 面试题
实习单位评语
2014/04/26 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
大学生学习计划书
2014/09/15 职场文书
买房协议书范本
2014/10/23 职场文书
学校党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers