最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript 復(fù)制數(shù)組實(shí)現(xiàn)代碼

 更新時間:2009年11月26日 18:44:30   作者:  
Javascript 復(fù)制數(shù)組實(shí)現(xiàn)代碼,需要的朋友可以參考下。
一、 錯誤實(shí)現(xiàn)
不少人可能直接就用等號進(jìn)行賦值了:
復(fù)制代碼 代碼如下:

var array1 = new Array("1","2","3");
var array2;
array2 = array1;
array1.length = 0;
alert(array2); //返回為空

這種做法是錯的,因?yàn)閖avascript分原始類型與引用類型(與java、c#類似)。Array是引用類
型。array2得到的是引用,所以對array1的修改會影響到array2。
二、 使用slice()
可使用slice()進(jìn)行復(fù)制,因?yàn)閟lice()返回也是數(shù)組。
復(fù)制代碼 代碼如下:

var array1 = new Array("1","2","3");
var array2;
array2 = array1.slice(0);
array1.length = 0;
alert(array2); //返回1、2、3

三、 使用concat()
注意concat()返回的并不是調(diào)用函數(shù)的Array,而是一個新的Array,所以可以利用這一點(diǎn)進(jìn)行復(fù)制。
復(fù)制代碼 代碼如下:

var array1 = new Array("1","2","3");
var array2;
array2 = array1.concat();
array1.length = 0;
alert(array2); //返回1、2、3

四、 測試
復(fù)制代碼 代碼如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Array Test</title>
<script type="text/javascript">
var array1;
var array2;
function clone1() {
array1 = new Array("1","2","3");
array2 = array1;
array1.length = 0;
alert(array2);
}
function clone2() {
array1 = new Array("1","2","3");
array2 = array1.slice(0);
array1.length = 0;
alert(array2);
}
function clone3() {
array1 = new Array("1","2","3");
array2 = array1.concat();
array1.length = 0;
alert(array2);
}
</script>
</head>
<body>
<input type="button" value="clone1" onclick="clone1()" /><br />
<input type="button" value="clone2" onclick="clone2()" /><br />
<input type="button" value="clone3" onclick="clone3()" /><br />
</body>
</html>

在IE8及FF3.0下均通過測試

相關(guān)文章

最新評論

繁峙县| 保德县| 孝感市| 乡宁县| 会昌县| 祁东县| 巨野县| 通海县| 东平县| 安阳市| 黑龙江省| 五莲县| 社会| 八宿县| 襄城县| 安泽县| 宝鸡市| 乌恰县| 新田县| 抚宁县| 安吉县| 且末县| 英吉沙县| 易门县| 吴旗县| 梓潼县| 绵竹市| 巴林左旗| 泾川县| 永寿县| 敦化市| 张家港市| 柞水县| 莆田市| 青龙| 商洛市| 宣武区| 紫阳县| 富阳市| 潍坊市| 沙田区|