知识大全 Javascript中浅拷贝与深拷贝的实现

Posted

篇首语:君不见长松卧壑困风霜,时来屹立扶明堂。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Javascript中浅拷贝与深拷贝的实现相关的知识,希望对你有一定的参考价值。

Javascript中浅拷贝与深拷贝的实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  javascript中的对像赋值 与 Java中是一样的 都为引用传递 就是说 在把一个对像赋值给一个变量时 那么这个变量所指向的仍就是原来对像的地址 那怎么来做呢 答案是 克隆 什么是 clone ?在实际编程过程中 我们常常要遇到这种情况 有一个对象A 在某一时刻A中已经包含了一些有效值 此时可能会需要一个和A完全相同新对象B 并且此后对B任何改动都不会影响到A中的值 也就是说 A与B是两个独立的对象 但B的初始值是由A对象确定的 在Java/javasript语言中 用简单的赋值语句是不能满足这种需求的 要满足这种需求虽然有很多途径 但实现clone()方法是其中最简单 也是最高效的手段 当然了 javascript语言中并没有此方法 所以我特意写了两个克隆方法:一个为浅复制 一个为深复制 解释: 浅复制(影子克隆):只复制对像的基本类型 对像类型 仍属于原来的引用 深复制(深度克隆):不紧复制对象的基本类 同时也复制原对象中的 对像 就是说完全是新对象产生的 下面是代码 我己测试过了 还没遇到什么问题 希望 大家感兴趣的 一起参与 <!DOCTYPE HTML PUBLIC //W C//DTD HTML Transitional//EN ><HTML><HEAD><TITLE> New Document </TITLE><meta equiv= Content Type content= text/; charset=gb ><META NAME= Generator CONTENT= Wawa Editor ><META NAME= Author CONTENT= 八神奄 ><META NAME= Keywords CONTENT= javascript Java XML XSLT ASP VBScript C# C++ Database ><META NAME= Description CONTENT= 不及格的程序员 无所不在 ></HEAD>

  <BODY><SCRIPT LANGUAGE= javascript ><!

  function Object prototype clone() var newObj = new Object(); for(elements in this)  newObj[elements] = this[elements];  return newObj;

  function Object prototype cloneAll() function clonePrototype() clonePrototype prototype = this; var obj = new clonePrototype(); for(var ele in obj)  if(typeof(obj[ele])== object ) obj[ele] = obj[ele] cloneAll();  return obj;

  var obj    = new Object(); obj Team   = First ; obj Powers   = new Array( Iori Kyo ); obj msg   = function()alert(); obj winner   = new Object(); obj winner name = obj Powers[ ]; obj winner age  = ; obj winner from = Japan

  var obj _clone   = obj cloneAll(); obj _clone Team   = Second ; obj _clone Powers  = new Array( Jimmy Anndy ); obj _clone winner name = obj _clone Powers[ ]; obj _clone winner age = ; obj _clone winner from = USA ;

  msg  = 界拳皇单打独斗杯 拳皇挑战赛:  \\n\\n   A组 对战形式:\\n\\n  msg += obj Team+ 组 人员名单: +obj Powers+ \\n ; msg += 第一轮过后 胜利者为: +obj winner name + 参赛者年龄: +obj winner age+ 来自岛国: +obj winner from+ \\n ; msg += \\n\\n   B组 对战形式:\\n\\n  msg += obj _clone Team+ 组 人员名单: +obj _clone Powers+ \\n ; msg += 第一轮过后 胜利者为: +obj _clone winner name + 参赛者年龄: +obj _clone winner age+ 来自国际警察部队: +obj _clone winner from+ \\n ; alert(msg);

cha138/Article/program/Java/JSP/201311/19698

相关参考

DVD碟片为什么不容易被拷贝?

1、DVD加装防拷贝管制系统,在商品DVD碟件及播放设备加入防连接拷贝的识别码。  2、加注地在代码,无论是DVD播放机还是碟机,必须加注合法销售及发行地区的识别代码,在  各个区域发行有软件产品采用

知识大全 拷贝枚举器以加强效率

Java技巧:拷贝枚举器以加强效率  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  当一个代码段正

知识大全 拷贝文件的Java源代码

拷贝文件的Java源代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  //ClassCopyF

知识大全 JAVA 深层拷贝 DeepCopy的使用详解

JAVA深层拷贝DeepCopy的使用详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!最近需要用

知识大全 一个实用的Delphi屏幕拷贝程序的设计

一个实用的Delphi屏幕拷贝程序的设计  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Borl

知识大全 利用java本地拷贝文件及文件夹

  如何实现文件夹对文件夹的拷贝呢?如果文件夹里还有文件夹怎么办呢?    接下来我就将我的方法演示给一些初学者希望能够帮助你们!    /*  *CopyRightby  */  packageco

知识大全 ORACLE7 用户之间数据拷贝的方法

ORACLE7用户之间数据拷贝的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  大型数据库系

知识大全 拷贝的SQL Server 7数据库的恢复方法

拷贝的SQLServer7数据库的恢复方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    在

销售电影母带和拷贝取得的收入是否应缴纳增值税?

电影制片厂制作电影后,销售电影母带和拷贝取得的收入,是否应缴纳增值税  根据《财政部、海关总署、国家税务总局关于支持文化企业发展若干税收政策问题的通知》(财税〔2009〕31号)规定,广播电影电视行政

知识大全 rowscopy, 拷贝带有自增字段的表

  1清除本地数据    ls_sql=TRUNCATETABLE+ls_table[]  executeIMMEDIATE:ls_sqlusingsqlca;    2//打开可以插入自增显示插入自