`
happyqing
  • 浏览: 3205905 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

利用 jQuery 克隆 Object

阅读更多

利用 jQuery 克隆 Object

在网上搜索关键字 “javascript object clone”,可以找到很多实现克隆 Object 的代码,可是据我测试,让人满意的几乎没有。

今天发现 jQuery 的作者 John Resig 给别人的答复,尝试了一下确实很好用。

方法如下:
// 浅层复制(只复制顶层的非 object 元素)
var newObject = jQuery.extend({}, oldObject);

// 深层复制(一层一层往下复制直到最底层)
var newObject = jQuery.extend(true, {}, oldObject);


 测试如下:
var obj1 = {
  'a': 's1',
  'b': [1,2,3,{'a':'s2'}],
  'c': {'a':'s3', 'b': [4,5,6]}
}

var obj2 = $.extend(true, {}, obj1);
obj2.a='s1s1';
obj2.b[0]=100;
obj2.c.b[0]=400;

console.log(obj1);
console.log(obj2);
 obj2 内部元素的值改变之后,如果 obj1 的相应值保持不变,就说明复制成功。
 
直接复制Array对象好像不能遍历,可以把Array对象放到另一个简单对象的属性上,复制另一个对象,再取出遍历。
var bzs = new Array();
***
var temp = new Object();
temp.bzs = bzs;
var bak = jQuery.extend(true, {}, temp);

ExtJS 也有类似的方法 Ext.apply,因此单独用 ExtJS 应该也能实现同样的功能。
分享到:
评论

相关推荐

    jQuery权威指南pdf

    1. **jQuery基础**:介绍jQuery的基本用法,包括如何引入jQuery库,如何选择元素(如使用CSS选择器),以及如何操作DOM(Document Object Model)。 2. **元素操作**:讲解如何添加、删除和修改HTML元素,包括文本...

    jquery开发入门整理(所需要了解的)

    - `$.extend(target, source)`:将源对象的所有可枚举属性复制到目标对象上,用于对象的合并或克隆。 ### 进行jQuery缓存使用说明介绍讲析 在频繁访问DOM元素的情况下,直接通过选择器获取元素会导致性能下降。为了...

    jQuery详细教程

    jQuery详细教程,讲解很透彻, 一. jQuery 语法实例 $(this).hide() 演示 jQuery hide() 函数,隐藏当前的 HTML 元素。 $("#test").hide() 演示 jQuery hide() 函数,隐藏 id="test" 的元素。 $("p").hide() ...

    JavaScript and jQuery

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

    jquery 1.4 API 文档

    本篇文章将深入探讨jQuery 1.4 API 中的关键知识点,帮助开发者更有效地利用这个版本的jQuery进行网页开发。 1. **选择器(Selectors)** - `$("#id")`: 通过ID选择元素。 - `$(".class")`: 通过类名选择元素。 ...

    《精通JavaScript+jQuery》pdf下载

    学习JavaScript不仅仅是掌握一门语言,更是理解ECMAScript规范、DOM(Document Object Model)以及BOM(Browser Object Model)的关键。学习方法上,建议首先牢固掌握JavaScript的基础,再深入研究如jQuery等库或...

    jquery_1.3_cheatsheet_v1

    - **jQuery Object Accessors**: - **length**:返回匹配元素的数量。 - **selector**:返回原始CSS选择器字符串,该字符串被用来创建当前的jQuery对象。 - **context**:返回原始搜索上下文(DOM节点)。 - **...

    jqueryui-API(最完整).pdf

    - **proxy (String | Function)**:拖拽时使用的代理元素,默认情况下,当设置为`'clone'`时,将使用克隆元素作为代理元素。 通过以上介绍,我们可以看到jQuery UI API提供了丰富的功能,不仅包括页面解析器、模块...

    用法jQuery中的wrap()函数操作HTML元素的教程_.docx

    jQueryObject.wrap( wrapper ) ``` 其中,`jQueryObject`是你想要包裹的元素集合,而`wrapper`参数是你要用来包裹这些元素的HTML结构。`wrapper`可以是以下几种类型: 1. **字符串(String)**: 你可以提供一个CSS...

    jQuery.buildFragment使用方法及思路分析

    一、jQuery.buildFragment使用方法 1、参数 jQuery.buildFragment( args, context, scripts );2、返回值 return { fragment: fragment, cacheable: cacheable }; 二、思路分析 1、处理context参数 根据传入到context...

    使用jquery实现以post打开新窗口

    需要注意的是,这个函数可以确保在Firefox和其他浏览器中的兼容性,因为它利用了jQuery的DOM操作和事件处理功能,避免了纯JavaScript中可能存在的兼容性问题。 在实际应用中,可以调用`jQueryOpenPostWindow`函数来...

    jQuery常见面试题之DOM操作详析

    在JavaScript中,DOM(Document Object Model)是HTML和XML文档的结构化表示,jQuery库提供了一套简洁高效的API来操作DOM。本文将深入探讨jQuery中的常见DOM操作面试题,帮助理解其核心概念和用法。 ### 1. `html()...

    基于jQuery的AJAX和JSON的实例.docx

    而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 首先,HTML模板的设计至关重要,因为它定义了数据将如何在页面上展示。在给定的示例中,我们看到...

    深化理解JavaScript中的对象复制(Object Clone)_.docx

    在JavaScript中,对象复制,也称为克隆,是一项关键的编程技巧,用于创建一个对象的新副本,而不会改变原始对象。JavaScript的浅复制和深复制是两个重要的概念,它们在处理复杂数据结构时尤为关键。 浅复制...

    jQuery 中DOM 操作详解

    - 创建节点:利用jQuery的工厂函数$(),可以根据传入的HTML字符串创建DOM对象,并将其包装为jQuery对象返回。例如,创建一个元素可以使用$(“”)或$(“<p></p>”)。 - 插入节点:将创建的新元素节点插入到文档中,...

    基于jquery的无缝循环新闻列表插件

    基于jQuery的无缝循环新闻列表插件是一种利用jQuery库实现的网页前端插件,主要用于在网页中创建一个能够不断循环展示新闻或信息列表的功能。这种插件通常用于新闻网站或者需要展示滚动内容的网页中,以达到内容动态...

    深克隆

    有一些流行的JavaScript库,如Lodash(_)和jQuery,提供了内置的深克隆功能。例如,Lodash的`_.cloneDeep`方法: ```javascript const _ = require('lodash'); const clonedObj = _.cloneDeep(originalObj); ...

    amazon-clone:克隆电子商务公司Amazon网站

    JavaScript在这些方面发挥着至关重要的作用,通过DOM(Document Object Model)操作来改变网页内容,动态加载数据,实现页面的实时更新。 1. **路由管理**:克隆Amazon需要一个高效的路由管理系统,确保用户可以...

    Bizwhizz:克隆网站!

    此外,现代JavaScript库和框架,如jQuery或React,能简化这部分工作,提高开发效率。 在具体实践中,你可能会使用版本控制系统,如Git,来管理你的代码,确保每一次修改都有记录并且可以回溯。同时,为了保持代码...

Global site tag (gtag.js) - Google Analytics