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插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
May 26 jQuery
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
Jun 13 jQuery
jquery实现左右轮播切换效果
Jan 01 jQuery
jQuery实现的鼠标响应缓冲动画效果示例
Feb 13 jQuery
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
Apr 12 jQuery
JQuery Ajax执行跨域请求数据的解决方案
Dec 10 jQuery
jQuery实现的简单歌词滚动功能示例
Jan 07 jQuery
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
Feb 27 jQuery
使用JQuery自动完成插件Auto Complete详解
Jun 18 jQuery
jQuery位置选择器用法实例分析
Jun 28 jQuery
jQuery实现的上拉刷新功能组件示例
May 01 jQuery
JQuery实现折叠式菜单的详细代码
Jun 03 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学习笔记 php中面向对象三大特性之一[封装性]的应用
2011/06/13 PHP
PHP学习笔记之数组篇
2011/06/28 PHP
php版淘宝网查询商品接口代码示例
2014/06/17 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
基于jQuery仿淘宝产品图片放大镜代码分享
2020/06/23 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
javascript实现的左右无缝滚动效果
2016/09/19 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
vue-cli2.x项目优化之引入本地静态库文件的方法
2018/06/19 Javascript
弱类型语言javascript中 a,b 的运算实例小结
2019/08/07 Javascript
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
python模仿网页版微信发送消息功能
2018/02/24 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
解决tensorflow模型参数保存和加载的问题
2018/07/26 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
Python实现八皇后问题示例代码
2018/12/09 Python
Python中的asyncio代码详解
2019/06/10 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
2019/07/12 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
HTML5之WebGL 3D概述(上)—WebGL原生开发开启网页3D渲染新时代
2013/01/31 HTML / CSS
英国著名国际平价时尚男装品牌:Topman
2016/08/27 全球购物
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
ReVive利维肤美国官网:RéVive Skincare
2018/04/18 全球购物
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
自荐信如何“自荐”
2013/10/24 职场文书
护士实习生自我鉴定范文
2013/12/10 职场文书
优秀志愿者事迹材料
2014/02/03 职场文书
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript