对象拷贝extend
如果想要把某个对象拷贝(合并)给另外一个对象使用,此时可以使用$.extend()方法
语法:
$.extend([deep],target,object1,[objectN]);
1.deep:如果设为true为深拷贝,默认false浅拷贝
2.target:要拷贝的目标对象
3.object1:待拷贝到第一个对象的对象
4.objectN:待拷贝到第 N 个对象的对象
5.浅拷贝是把被拷贝的对象复杂数据类型中的地址拷贝给目标对象,修改目标对象会影响被拷贝对象
6.深拷贝,前面加true,完全克隆(拷贝的对象,而不是地址),修改目标对象不会影响被拷贝对象 $(function(){
var targetObj = { } ;
// 第一种情况:
var obj ={
id : 1 ,
name : "andy"
};
$.extend( targetObj , obj ) ; // 把 obj 中的数据 拷贝到 targetObj中
console.log( targetObj); // id : 1 , name : " andy " // 第二种情况:
var targetObj = {
id : 0
} ;
var obj ={
id : 1 ,
name : "andy"
};
$.extend( targetObj , obj ) ; // 把 obj 中的数据 拷贝到 targetObj中
console.log( targetObj); // id : 1 , name : " andy " // 会覆盖 targetObj 里面的数据 // 第三种情况:
var targetObj = {
id : 0
msg : {
sex : ' 男 '
}
} ;
var obj ={
id : 1 ,
name : "andy"
msg : {
age : 18
}
};
$.extend( targetObj , obj ) ; // 把 obj 中的数据 浅拷贝到 targetObj中
console.log( targetObj); // id : 1 , name : " andy " msg{age:18} // 会覆盖 targetObj 里面的数据 ,复杂对象只会拷贝数据中的地址
// 第四种情况:
var targetObj = {
id : 0
msg : {
sex : ' 男 '
}
} ;
var obj ={
id : 1 ,
name : "andy"
msg : {
age : 18
}
};
$.extend( true , targetObj , obj ) ; // 把 obj 中的数据 深拷贝到 targetObj中
console.log( targetObj); // id : 1 , name : " andy " msg{age:18,sex:'男'} // 深拷贝把里面的数据完全复制一份给目标对象,如果里面有不冲突的属性,会合并到一起
})
对象拷贝extend的更多相关文章
- 也说Javascript对象拷贝及疑问
一.浅拷贝 当我们需要将一个对象拷贝至另一个对象时,我们一般会这么实现 function shadowCopy(source,target){ var target=target||{}; for(v ...
- js对象拷贝的方法
对象拷贝的方法是一个难点,尤其是深拷贝.建议把代码都运行下,帮助理解拷贝. 一. json方法 1. 适合情况: JSON对象的深度克隆.方法是先JSON.stringify() 转为json字符 ...
- javascript中的对象拷贝
js中的数据类型 在介绍javascript中的对象的拷贝之前,我先介绍一个基础的东西,javascript中的数据类型. 我们做前端的应该都知到在es6 之前,javascript中的数据类型Boo ...
- 《Python CookBook2》 第四章 Python技巧 对象拷贝 && 通过列表推导构建列表
(先学第四章) 对象拷贝 任务: Python通常只是使用指向原对象的引用,并不是真正的拷贝. 解决方案: >>> a = [1,2,3] >>> import c ...
- python中的对象拷贝
python中.进行函数參数传递或者返回值时,假设是一般的变量,会拷贝传递.假设是列表或字典则是引用传递.那python怎样对列表和字典进行拷贝传递呢:标准库的copy模块提供了两个方法:copy和d ...
- OC中对象拷贝概念
OC中的对象拷贝概念,这个对于面向对象语言中都会有这种的问题,只是不同的语言有不同的解决方式:C++中有拷贝构造函数,Java中需要实现Cloneable接口,在clone方法中进行操作.但是不过OC ...
- C# 对象拷贝问题 =等同于浅拷贝
大家都知道,在C#中变量的存储分为值类型和引用类型两种,而值类型和引用类型在数值变化是产生的后果是不一样的,值类型我们可以轻松实现数值的拷贝,那么引用类型呢,在对象拷贝上存在着一定的难度. 下 ...
- Java Object 对象拷贝答疑
Java Object 对象拷贝答疑 @author ixenos 摘要:在对象的clone过程需要注意的几点.关于关键字this.super 关于clone[对象拷贝] 在实际编程过程,有时候我们会 ...
- Java Object 对象拷贝
Java Object 对象拷贝 @author ixenos JAVA 对象拷贝 Java里的clone分为: 1.浅拷贝:浅复制仅仅复制所考虑的对象,而不复制它所引用的对象,Object类里的c ...
随机推荐
- matlab 生成.exe文件 转
本文链接:https://blog.csdn.net/qq_20823641/article/details/51863737 如何将MATLAB程序编译成独立可执行的程序?如何将编译好的独立可执行程 ...
- mysql 判断指定条件数据存不存在,不存在则插入
折腾了半天终于把这个给折腾顺了,但是后来发现用不了竟然...悲剧啊,但是还是要记录下加深记忆 insert into table1 (field1, field2,field3) select ?fi ...
- JAVA二分插入排序
- 39th 迷迷糊糊 二豆玩不转了
今天学的语法 1. # {} . format()的传送作用 请从键盘获取一个整数,求他的平方根,要求: 1 如果这个整数是大于等于0,则直接打印其平方根 2 否则, 打印其绝对值的平方根 x ...
- python 对redis 键值对的操作
我们可以将Redis中的Hashes类型看成具有String Key和String Value的键值对容器.类似python中的dict,javascript的jaon,java 的map,每一个Ha ...
- JAVA设计模式之迭代器设计模式
一.迭代器模式简介 Iterator模式也叫迭代模式,是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator(遍历)按顺序进行遍历访问的设计模式. 二.迭代器模式的角色与职 ...
- go new
go new 尽管没有构造函数,go有一个内置的函数new,可以用来分配一个类型需要的内存.new(X)和&X{}是等效的: goku := new(Saiyan) // 等效 goku := ...
- delphi下运行vbscript脚本
简单一个vb脚本,功能为打开被限制的注册表.Set wso = CreateObject("WScript.Shell")wso.RegWrite "HKEY_CURRE ...
- NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))
在看这个博客前,请读者先去完整看完:NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article ...
- [Luogu P4178]Tree 题解(点分治+平衡树)
题目大意 给定一棵树,边带权,问有多少点对满足二者间距离$\leq K$,$n \leq 40000$. 题解 点分治专题首杀!$Jackpot!$ (本来看着题意比较简单想捡个软柿子捏,结果手断了… ...