jquery 对象数组的克隆和深度克隆

var obj1 = $.extend(false, {}, obj2);  //对象克隆

var obj1 = $.extend(true, {}, obj2);   //对象深度克隆

----------------------------把{} 换成了[]---------------

var obj1 = $.extend(false, [], obj2);    //数组克隆

var obj1 = $.extend(true, [], obj2);    //数组深度克隆



所谓的深度就是指有好几层关系在里面,普通克隆下面几层还会保持引用关系。

时间: 2024-12-25 02:27:54

jquery 对象数组的克隆和深度克隆的相关文章

遍历jQuery对象数组

本文介绍了jQuery操作对象数组元素的3种方法以及一种错误方法. 代码如下: <div id="div1"><span>a</span><span>b</span><span>c</span></div> 1.错误方式:不能用[]方式取jquery对象数组,如下: $(function() { var div_span = $("#div1 span"); for( v

Java的“影子克隆”和“深度克隆”

今天来学习学习java对象的克隆,在写代码的时候,有时候我们会这样写:对象1=对象2,也就是把对象2赋值给对象1了,但是这样做有个问题,就是如果我们修改了对象2的属性值,对象1的相同属性值也被修改了,反过来亦如此,让我来证明一下: public class A { private String msg; public A() { msg = "Hello"; } public String getMsg() { return msg; } public void setMsg(Stri

javascript中对象的深度克隆

零.寒暄 又是一个月多月没有更新博客了,这段时间回学校处理下论文的事情,实习的生活也暂时告一段落(在公司上班,才发现学校里面的生活简直如天堂一般,相信很多已经毕业的小伙伴肯定被我说中了,说中了请给本文点个赞,哈哈!).希望接下来自己的更新进度能加快,马上又是一年校招时,被虐也好.大牛虐别人也罢,总之祝福各位今年要找工作的小伙伴们好运.那么,今天就聊一下一个常见的笔试.面试题,js中对象的深度克隆.翻了下这个题目,在很多地方出现过,已经算一个老的题目了,但是每年的校招中总会考到,其实想想,这个题目

js学习随笔一:对象简单、深度克隆(复制)

javascript的一切实例都是对象,只是对象之间稍有不同,分为原始类型和合成类型.原始类型对象指的是字符串(String).数值(Number).布尔值(Boolean),合成类型对象指的是数组(Array).对象(Object).函数(Function). 既然对象分为这两类,他们之间的最大差别是复制克隆的差别.普通对象存储的是对象的实际数据,而引用对象存储的是对象的引用地址,而把对象的实际内容单独存放,因为引用对象通常比较庞大,这是数据开销和内存开销优化的手段.通常初学者很难理解这部分内

JS的深度克隆,利用构造函数原型深度克隆

我爱撸码,撸码使我感到快乐!大家好,我是Counter.今天来写写,JS中的深度克隆,这个在笔面试中,考的还是比较多的,主要是对象与数组的赋值,如果直接赋值的话,那么得到的是对象或者数组在堆里的地址,那么原有的的数据修改的话,那么克隆的数据也会随着修改,这就是浅克隆,所以这边就要使用到枚举,然后再每一项赋值,这样就可以完成一份深度克隆,这样原对象里修改属性,如果你在这对象修改之前已经克隆的话,那么你这个克隆的对象,对象里的属性是不变,这就是深度克隆.话不多说了,直接上代码: // 假设要克隆的对

深入浅出设计模式 ------ Prototype(原型模式)之深度克隆

继上篇深入浅出设计模式 ------ Prototype(原型模式)的浅克隆实现, 本文进入Prototype(原型模式)的进阶篇----深度克隆. 深度克隆 ---- 序列化方式实现 把对象写到流里的过程是序列化(Serilization)过程,而把对象从流中读出来的过程则叫做反序列化(Deserialization).写在流里的是对象的一个克隆(新的, 独立的), 而原对象仍存在于JVM内存模型里.因此, 以下代码采用序列化方式实现深度克隆. 第一步: 将上篇的代码做些许改动, 加入对象引用

JQuery日记 5.31 JQuery对象的生成

JQuery对象的生成 1 selector为任何可转换false的空值 返回空JQuery对象 2 selector为字符串 2.1 selector为html字符串或有id属性的标签 2.2.1 selector为html字符时 转换html字符为DOM元素并放入当前JQuery的数组 当context参数为js对象时,迭代器属性 (1)当前属性对应此JQuery对象的某个函数时,调用此JQuery对象的此函数,参数为当前属性的值. (2)其他设置HTML属性 2.2.2 selector有

js与jquery常用数组方法总结

转载:http://www.cnblogs.com/codetker/p/4676899.html 昨天被问数组方法的时候,问到sort()方法是否会改变原来的数组.本来我猜是不会,也是这么说,马上我又觉得,知识这种东西,不确定的时候直接说不确定或不知道就好,只是凭借着不确定的猜测或者是记忆,害人害己,于是我又回答不知道.结果果然...我记错了0.0 还是自己总结测试一下比较靠谱,印象也比较深刻.欢迎大家提出相关意见或建议,提前谢谢哈~ 一.原生js方法 1.遍历数组 in(同时也是对象遍历属性

jquery取对象数组元素的错误方式

代码如下: 1 <div id="div1"> 2 <span>a</span> 3 <span>b</span> 4 <span>c</span> 5 </div> 1.错误方式:不能用[]方式取jquery对象数组,如下: 1 $(function() { 2 var div_span = $("#div1 span"); 3 for( var i = 0; i &l