<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="JavaScript数组深拷贝和浅拷贝的两种方法" id="card1">
<p> 游客</p><p>
标题:JavaScript数组深拷贝和浅拷贝的两种方法<br/>
正文:<br/>
例如这个例子：代码如下:var arr = [&quot;One&quot;,&quot;Two&quot;,&quot;Three&quot;];<br/><br/>var arrto = arr;<br/>arrto[1] = &quot;test&quot;;<br/>document.writeln(&quot;数组的原始值：&quot; + arr + &quot;&amp;lt;br /&amp;gt;&quot;);//Export:数组的原始值：One,test,Three<br/>document.writeln(&quot;数组的新值：&quot; + arrto + &quot;&amp;lt;br /&amp;gt;&quot;);//Export:数组的新值：One,test,Three像上面的这种直接赋值的方式就是浅拷贝，很多时候，这样并不是我们想要得到的结果，其实我们想要的是arr的值不变，不是吗？方法一：js的slice函数代码如下:对于array对象的slice函数， <br/>返回一个数组的一段。（仍为数组） <br/>arrayObj.slice(start, [end])  <br/>参数 <br/>arrayObj  <br/>必选项。一个 Array 对象。  <br/>start  <br/>必选项。arrayObj 中所指定的部分的开始元素是从零开始计算的下标。  <br/>end  <br/>可选项。arrayObj 中所指定的部分的结束元素是从零开始计算的下标。  <br/>说明 <br/>slice 方法返回一个 Array 对象，其中包含了 arrayObj 的指定部分。 <br/>slice 方法一直复制到 end 所指定的元素，但是不包括该元素。如果 start 为负，将它作为 length + start处理，此处 length 为数组的长度。如果 end 为负，就将它作为 length + end 处理，此处 length 为数组的长度。如果省略 end ，那么 slice 方法将一直复制到 arrayObj 的结尾。如果 end 出现在 start 之前，不复制任何元素到新数组中。<br/>例子：代码如下:var arr = [&quot;One&quot;,&quot;Two&quot;,&quot;Three&quot;];<br/><br/>var arrtoo = arr.slice(0);<br/>arrtoo[1] = &quot;set Map&quot;;<br/>document.<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1474&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1474&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1474&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1474&amp;Page=2">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1474">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1474">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>