`
shuzheng5201314
  • 浏览: 203396 次
  • 来自: 北京
社区版块
存档分类
最新评论

js/jquery 克隆对象

 
阅读更多

 jQuery 中的 extend 方法:

var o = {a: [1]};

//浅拷贝
var o1 = $.extend({}, o);
console.log(o1.a === o.a);  // true

//深拷贝
var o2 = $.extend(true, {}, o);
console.log(o2.a === o.a);  //false

 js方法:

方法一

Js代码  收藏代码
  1. function clone(obj){  
  2.     var o;  
  3.     switch(typeof obj){  
  4.     case 'undefined'break;  
  5.     case 'string'   : o = obj + '';break;  
  6.     case 'number'   : o = obj - 0;break;  
  7.     case 'boolean'  : o = obj;break;  
  8.     case 'object'   :  
  9.         if(obj === null){  
  10.             o = null;  
  11.         }else{  
  12.             if(obj instanceof Array){  
  13.                 o = [];  
  14.                 for(var i = 0, len = obj.length; i < len; i++){  
  15.                     o.push(clone(obj[i]));  
  16.                 }  
  17.             }else{  
  18.                 o = {};  
  19.                 for(var k in obj){  
  20.                     o[k] = clone(obj[k]);  
  21.                 }  
  22.             }  
  23.         }  
  24.         break;  
  25.     default:          
  26.         o = obj;break;  
  27.     }  
  28.     return o;     
  29. }  

 

方法二

Js代码  收藏代码
  1. function clone2(obj){  
  2.     var o, obj;  
  3.     if (obj.constructor == Object){  
  4.         o = new obj.constructor();   
  5.     }else{  
  6.         o = new obj.constructor(obj.valueOf());   
  7.     }  
  8.     for(var key in obj){  
  9.         if ( o[key] != obj[key] ){   
  10.             if ( typeof(obj[key]) == 'object' ){   
  11.                 o[key] = clone2(obj[key]);  
  12.             }else{  
  13.                 o[key] = obj[key];  
  14.             }  
  15.         }  
  16.     }  
  17.     o.toString = obj.toString;  
  18.     o.valueOf = obj.valueOf;  
  19.     return o;  
  20. }  

 

 

方法三

Js代码  收藏代码
  1. function clone3(obj){  
  2.     function Clone(){}  
  3.     Clone.prototype = obj;  
  4.     var o = new Clone();  
  5.     for(var a in o){  
  6.         if(typeof o[a] == "object") {  
  7.             o[a] = clone3(o[a]);  
  8.         }  
  9.     }  
  10.     return o;  
  11. }  

 

 

分享到:
评论

相关推荐

    关于jquery克隆,给元素赋值详解

    在JavaScript和jQuery的世界里,克隆对象和给元素赋值是常见的操作,特别是在处理动态内容和数据交互时。本文将深入探讨如何使用jQuery实现元素的克隆以及如何为元素赋值,同时也会提及如何结合使用AJAX技术进行克隆...

    jQuery_API.rar_JavaScript/JQuery_Java_

    6. **AJAX(Asynchronous JavaScript and XML)**:jQuery封装了XMLHttpRequest对象,简化了异步数据请求。例如,`$.ajax()`, `$.get()`, `$.post()`等方法用于发送HTTP请求,`$.getJSON()`用于获取JSON格式的数据。...

    jQuery-1.7API.rar_JavaScript/JQuery_JavaScript_

    jQuery是一款广泛应用于Web开发的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画制作以及Ajax交互。在jQuery 1.7版本中,该库进一步优化了性能,增加了新功能,并修复了一些已知问题。本篇文章将...

    原生JS取代一些JQuery方法的简单实现

    // jQuery克隆元素 var clonedEl = $('.el').clone(); // 原生JavaScript克隆元素 var clonedEl = document.querySelector('.el').cloneNode(true); ``` 8. 移除元素 jQuery中的`.remove()`方法可以移除元素。原生...

    jQuery详细教程

    &lt;script type="text/javascript" src="/jquery/jquery.js"&gt;&lt;/script&gt; &lt;script type="text/javascript"&gt; $(document).ready(function(){ $("p").click(function(){ $(this).hide(); }); }); &lt;/script&gt; &lt;/head&gt; ...

    JavaScript and jQuery

    - **1996年**:微软创建了JScript,这是JavaScript的一个克隆版本,具有一些微小差异。 - **1997年**:ECMA-262成为JavaScript的第一个国际标准。 - **2003年**:James等人基于XMLHttpRequest创建了一个Ajax库。 - *...

    jQuery中json对象的复制方式介绍(数组及对象)

    在JavaScript和jQuery中,处理JSON对象的复制是一个常见的任务,特别是在数据操作和处理时。这里我们将深入探讨jQuery中两种主要的JSON对象复制方法,以及如何处理数组操作。 首先,我们来看jQuery自带的`$.map`...

    jQuery精解

    jQuery是一款广泛应用于网页开发的JavaScript库,它的出现极大地简化了JavaScript的DOM操作、事件处理、动画设计和Ajax交互。本教程将深入探讨jQuery的基础知识,通过实例解析,帮助你全面掌握jQuery的核心功能。 #...

    HTML5CloneSample:通过 JavaScript 和 jQuery 克隆简单示例

    通过学习这个项目,开发者可以深入理解JavaScript和jQuery中的元素克隆机制,并能将其应用到实际项目中。这有助于提升开发者处理动态内容和构建交互性更强的网页能力。此外,掌握这些技能对于前端开发人员来说是至关...

    JQuery拖拽使用文档

    在实现拖拽效果时,我们需要引入 jQuery UI 的相关库,包括 `jquery.ui.core`, `jquery.ui.widget`, `jquery.ui.mouse`, `jquery.ui.draggable` 和 `jquery.ui.droppable`。 `jquery.ui.draggable` 是实现拖动行为...

    Javascript中克隆一个数组的实现代码

    对于数组的克隆,在JavaScript中有多种方法可以实现: 1. 利用Array的slice方法 slice是JavaScript数组的一个方法,该方法可以创建一个新数组,这个新数组包含原数组中的某个范围的浅拷贝。slice方法不会改变原数组...

    jQuery.js的构造函数分析.doc

    ### jQuery.js构造函数详解 #### 一、引言 jQuery 是一款非常流行的 JavaScript 库,它简化了许多在网页上常见的操作,例如 HTML 文档遍历、事件处理、动画以及 Ajax 交互等。jQuery 的核心是一个构造函数,该构造...

    js克隆对象、数组的常用方法介绍

    在JavaScript中,克隆对象和数组是常见的需求,特别是在处理数据的复制、备份或避免原始数据被意外修改时。以下是一些常用的克隆方法: 1. **Ext的克隆方法**: - `Ext.clone(json)`:这个方法是ExtJS框架提供的,...

    jquerydemo

    2. jQuery 对象和 DOM 对象 3. 基本选择器 4. 层次选择器 5. 基本过滤选择器 6. 内容过滤选择器 7. 可见性过滤选择器 8. 属性过滤选择器 9. 子元素过滤选择器 10. 表单元素过滤选择器 11. 小结1 12. 选择器练习 13....

    JavaScript对象之深度克隆介绍

    在开发中,深度克隆对象的原因通常是为了保持原始数据的完整性,避免因修改克隆后的对象而导致原始数据的意外变更。例如,当你想要创建一个用户配置对象的副本,以便在不改变用户原始设置的情况下进行操作,或者在...

    jquery中文版离线手册

    jQuery是一个流行的JavaScript库,它极大地简化了网页中的DOM操作、事件处理、动画效果以及Ajax交互。这个离线手册包含了2012年12月15日版本的jQuery 1.8.3,对于那个时期的项目来说,这是一个广泛使用的稳定版本。 ...

    JS将所有对象s的属性复制给对象r(原生js+jquery)

    在JavaScript中,对象属性复制是常见的操作,尤其是在处理配置对象、合并对象或克隆对象时。本主题将探讨两种方法来实现这一目标:原生JavaScript和jQuery库的`$.extend()`函数。 首先,我们来看原生JavaScript的...

    jQuery实现动态给table赋值的方法示例

    在网页开发中,jQuery是一个非常流行的JavaScript库,它简化了DOM操作、事件处理、动画以及Ajax交互等任务。本篇文章将深入探讨如何使用jQuery来动态地给HTML表格(table)赋值,通过一个具体的实例来展示相关技巧。...

    Jquery使用小技巧汇总

    15. **克隆对象**:复制DOM元素。 ```javascript var clone = $("#original").clone(); ``` 16. **使元素居中**:水平和垂直居中元素。 ```javascript $("#centeredElement").css({ position: 'absolute', top:...

Global site tag (gtag.js) - Google Analytics