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 zTree树插件动态加载实例代码
May 11 jQuery
jquery.masonry瀑布流效果
May 25 jQuery
jQuery+ajax实现局部刷新的两种方法
Jun 08 jQuery
jQuery实现base64前台加密解密功能详解
Aug 29 jQuery
JQuery 选择器、DOM节点操作练习实例
Sep 28 jQuery
jQuery实现右侧抽屉式在线客服功能
Dec 25 jQuery
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 jQuery
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
Dec 06 jQuery
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
Mar 19 jQuery
JQuery发送ajax请求时中文乱码问题解决
Nov 14 jQuery
jQuery 选择方法及$(this)用法实例分析
May 19 jQuery
jQuery实现朋友圈查看图片
Sep 11 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/12/09 PHP
PHP XML操作类DOMDocument
2009/12/16 PHP
php遍历所有文件及文件夹的方法深入解析
2013/06/08 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
php实现微信原生支付(扫码支付)功能
2018/05/30 PHP
JavaScript Archive Network 集合
2007/05/12 Javascript
jQuery LigerUI 使用教程入门篇
2012/01/18 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
2014/05/14 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
jquery+ajax实现跨域请求的方法
2015/01/20 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
2015/07/27 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
2016/05/30 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
Bootstrap基本样式学习笔记之图片(6)
2016/12/07 Javascript
Vue入门之animate过渡动画效果
2018/04/08 Javascript
详解vuex结合localstorage动态监听storage的变化
2018/05/03 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
下载给定网页上图片的方法
2014/02/18 Python
Python SQLite3数据库操作类分享
2014/06/10 Python
Python入门篇之条件、循环
2014/10/17 Python
简单介绍Ruby中的CGI编程
2015/04/10 Python
python中list常用操作实例详解
2015/06/03 Python
python字符串,数值计算
2016/10/05 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
解决Django migrate不能发现app.models的表问题
2019/08/31 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
2020/04/10 Python
关于tensorflow softmax函数用法解析
2020/06/30 Python
如何使用 Python 读取文件和照片的创建日期
2020/09/05 Python
2019年Java 最常见的 面试题
2016/10/19 面试题
供货协议书范本
2014/04/22 职场文书
爱祖国演讲稿
2014/05/04 职场文书
公司承诺书范文
2014/05/19 职场文书
2016教师学习党章心得体会
2016/01/15 职场文书