$.extend(true,{},a,b)解析
2024-05-10 20:14:27
原文:$.extend(true,{},a,b)解析
版权声明: https://blog.csdn.net/bsfz_2018/article/details/81738437
什么是$.extend
jQuery.extend() 函数用于将一个或多个对象的内容合并到目标对象。
$.extend(true,{},a,b)
true:是否深度拷贝,不加为false,浅拷贝,加了深拷贝
{}:将合并结果保存到新对象,这样原对象将不会发生改变
a:第一个合并的对象
b:第二个合并的对象
浅拷贝
var defaults = {name:"张三",age:18,sex:"true",scores:{chinese:70,science:100}};
var options = {name:"李四",age:20,scores:{chinese:98,math:99,english:100}};
var settings = $.extend(defaults,options);
console.log(defaults);
console.log(options);
console.log(settings);
结果:
可以发现原对象发生改变,规则:a对象和b对象相同的部分,b覆盖a,不同的部分,a保留,b追加到a中
深拷贝
var defaults = {name:"张三",age:18,sex:"true",scores:{chinese:70,science:100}};
var options = {name:"李四",age:20,scores:{chinese:98,math:99,english:100}};
var settings = $.extend(true,defaults,options);
console.log(defaults);
console.log(options);
console.log(settings);
结果可以发现b不是像浅拷贝一样属性中的对象分数完全被覆盖,而是分数对象中的属性b覆盖a中相同的,b不同的追加,a中的保留
保存到新对象,不改变a对象的值
var defaults = {name:"张三",age:18,sex:"true",scores:{chinese:70,science:100}};
var options = {name:"李四",age:20,scores:{chinese:98,math:99,english:100}};
var settings = $.extend(true,{},defaults,options);
console.log(defaults);
console.log(options);
console.log(settings);
可以看出a对象没有发生改变,不同于上面第二个例子,即单纯的深度拷贝。这个例子的结果即使新对象{}被填充数据的结果
最新文章
- imopen和bwmorph_MATLAB图像处理中的应用
- pandas使用pct_change函数计算数据列的百分比变化:计算当前元素和前一个元素之间的百分比变化(包含NaN值的情况以及数据填充方法)
- LibManagementSys图书管理系统
- SAP CRM configuration product在UI上的显示逻辑
- 使用ADF BC管理保存点
- tmux 上滚_实践中的tmux:回滚缓冲区
- android cm 老罗,Android之父打造了一款全面屏旗舰 罗永浩如此评价
- Docker系列(六)镜像与仓库
- 问个globle的问题,如何定时更新论坛的数据啊?
- 【USB设备设计】--复合设备,双HID高速(64Byte 和 1024Byte)
- java里什么是索引_面试官:什么是索引?
- Nielsen:网络广告信任度上升
- 苹果7pnfc功能门禁卡_苹果7手机nfc怎么开启 苹果手机门禁卡nfc功能
- 期货市场监控后台管理系统
- 谢烟客---------Linux之权限
- Python处理unicode字符
- Asible简介及部署
- Linux系统-【磁盘管理】lsblk命令 – 查看系统的磁盘使用情况
- New Concept English Two 3
- Esri发布新的2050年全球土地覆盖预测地图
热门文章
- javascript-复制
- MFC获取文件夹路径并得到该字符串
- windows--bat--%0无限执行当前bat脚本
- windows程序窗体创建流程模型A--利用基本数据类型
- C++_类和对象_C++继承_多继承语法---C++语言工作笔记067
- Elasticsearch--进阶-term_keyword查询---全文检索引擎ElasticSearch工作笔记015
- k8s核心技术-Ingress(对外暴露应用实施)---K8S_Google工作笔记0042
- ASP.Net学习笔记002--ASP.Net服务端控件做了什么2
- matlab | 与 || 的区别
- 杭电3068 最长回文 最长回文的manacher算法