`
mutongwu
  • 浏览: 452556 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

对象浅/深复制

阅读更多
/**测试数据*/
var parent = {
	numbers: [1, 2, 3],
	letters: ['a', 'b', 'c'],
	obj: {
		prop: 1
	},
	bool: true,
	fn: function(p){
			alert(p);
	}
};

/**浅复制*/
function copy(p,c){
	var c = c || {}; 
	for(var i in p){
		c[i] = p[i];
	}
	return c;
}

/**深度复制*/
function deepCopy(p, c) {
    var c = c || {};
    for (var i in p) {
	    if (typeof p[i] === 'object') {
	        c[i] = (p[i].constructor === Array)?[]: {};
	        deepCopy(p[i], c[i]);
	    } else {
	        c[i] = p[i];
	    }
    }
    return c;
}


分享到:
评论

相关推荐

    深复制,浅复制区别c#代码

    浅复制适用于那些不需要成员完全独立的情况,而深复制则用于确保复制后的对象与原对象完全独立,不会受到原对象状态变化的影响。开发者在选择复制方式时,需要根据实际需求来决定使用哪种方式。

    android 浅复制和深复制-Java Generic Deep Copy 篇

    而深复制(Deep Copy)则是不仅复制对象本身,还递归地复制它引用的对象,确保新对象与原对象及引用的对象完全独立。 在Android中,我们常常需要复制Parcelable或Serializable类型的对象,因为它们是Android系统...

    原型模式测试浅复制和深复制(C++)

    下面我们将深入探讨原型模式、浅复制和深复制的概念及其在C++中的应用。 ### 原型模式 原型模式的基本思想是通过对象的克隆(clone)方法创建新对象。在C++中,我们可以自定义`clone()`方法来返回对象的一个副本。...

    Java中对象的深复制和浅复制详解.doc

    对象复制分为两种主要类型:浅复制(浅克隆)和深复制(深克隆)。理解这两种复制方式的区别对于优化程序性能和避免意外数据更改至关重要。 1. **浅复制(浅克隆)** 浅复制是指创建一个新对象,该对象拥有原始...

    android 浅复制和深复制实例

    我们分别对`person1`进行浅复制和深复制,然后修改复制后的对象。 ```java Person person1 = new Person("Alice", new Address("1st St", "City1")); Person shallowCopyPerson = (Person) person1.clone(); ...

    C#中的浅拷贝和深拷贝

    ### C#中的浅拷贝与深拷贝 ...浅拷贝通常用于不需要完全复制对象内部所有成员的情况,而深拷贝则适用于需要完全独立的复制版本的情况。在实际开发过程中,根据具体需求选择合适的拷贝方式是非常重要的。

    Java中的深拷贝(深复制)和浅拷贝(浅复制) 示例代码

    为了理解深拷贝(深复制)和浅拷贝(浅复制),我们需要首先了解Java对象内存的分配方式以及引用的概念。 1. **对象复制的基础** 在Java中,当我们创建一个对象时,系统会在内存中为该对象分配一块空间,存储它的...

    java深复制浅复制的实现源代码

    总之,理解深复制和浅复制是Java编程中的一项重要技能,尤其在处理复杂对象结构时。同时,正确地设计和实现类之间的多对多关系也是构建可维护和扩展的系统的关键。希望这个解释能帮助你更好地理解和应用这些概念。

    Java深复制与浅复制.doc

    在Java编程中,复制对象是常见的操作,主要分为两种方式:浅复制(Shallow Copy)和深复制(Deep Copy)。这两种复制方式的区别在于处理对象内部引用其他对象的情况。 1. **浅复制(浅克隆)**: 浅复制是指创建一...

    java的深复制与浅复制

    Java提供了两种基本的对象复制方式:浅复制(Shallow Copy)和深复制(Deep Copy)。这两种复制方式各有特点,适用于不同的场景。 #### 二、浅复制(Shallow Copy) 浅复制是指在创建一个新对象时,该对象的属性值...

    java List 深度复制方法

    浅复制只复制对象本身,而不复制它引用的对象,而深复制则会递归复制所有引用的对象。这篇博客将探讨如何在Java中对List进行深度复制。 首先,我们来理解一下什么是浅复制和深复制。在Java中,当我们使用`clone()`...

    iOS 深复制浅复制

    "深复制"和"浅复制"是两种不同的复制方式,它们在内存管理和对象引用上有着显著的区别。 首先,让我们理解“浅复制”(Shallow Copy)。浅复制是指创建一个新对象,这个新对象的指针指向的是原始对象中的数据的副本...

    MyBatisDemo && JAVA把一个对象的全部属性复制到另一个相同的对象

    首先,我们要理解Java中的对象复制有浅拷贝和深拷贝两种方式。浅拷贝只复制对象本身,不复制引用的对象;深拷贝不仅复制对象,还复制对象中引用的对象。在描述中提到的方法,很可能是关于深拷贝的实现。 在Java中,...

    Java深复制与浅复制&Clone

    有两种主要的复制方式:浅复制(Shallow Copy)和深复制(Deep Copy)。这两种复制方法在处理对象时有不同的行为和应用场景,特别是在涉及到复杂数据结构时。本文将深入探讨这两种复制方式,并通过实例来解释它们的...

    java不同对象及集合的多次复制

    - **浅拷贝**:创建一个新的对象,只复制对象的引用,不复制内部引用的对象。这意味着改变其中一个对象的内部引用对象,会影响另一个对象。 - **深拷贝**:创建一个全新的对象,不仅复制对象本身,还递归复制其...

    31.3、深复制和浅复制clone1

    在编程领域,尤其是在Java语言中,深复制和浅复制是两个重要的概念,它们与对象的复制行为密切相关。这里我们将深入探讨这两个概念,并通过实例来解释它们的区别。 首先,让我们了解基本数据类型的复制。在Java中,...

    教你javascript克隆dom结点,浅复制结点,深复制结点

    本文将详细介绍JavaScript中的DOM节点克隆,包括浅复制和深复制的区别。 一、DOM节点克隆基本概念 DOM节点克隆是通过调用`cloneNode()`方法实现的。这个方法接受一个布尔参数,如果为`true`,则执行深复制;如果为`...

    数组、字典深复制

    这意味着,如果原始对象中的元素是复杂的数据结构(如自定义对象),深复制会创建这些元素的新副本,而不是简单地复制引用。这样,即使修改副本,也不会影响到原始对象。 在Objective-C或Swift等面向对象的Apple...

    java不同对象之间及集合的复制

    但如果属性包含引用类型,就需要深复制以确保新对象拥有独立的引用。 3. **注解实现复制**: 注解是一种元数据,可以提供编译时或运行时的额外信息。在Java中,通过使用特定的注解处理器库(如MapStruct、Dozer等)...

Global site tag (gtag.js) - Google Analytics