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

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

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

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

這種做法是錯(cuò)的,因?yàn)閖avascript分原始類型與引用類型(與java、c#類似)。Array是引用類
型。array2得到的是引用,所以對(duì)array1的修改會(huì)影響到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,而是一個(gè)新的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)文章

最新評(píng)論

迁西县| 政和县| 集安市| 水富县| 库伦旗| 鄂尔多斯市| 霍林郭勒市| 武安市| 寿宁县| 通化市| 白水县| 冷水江市| 韶关市| 东海县| 黄浦区| 灵石县| 海晏县| 十堰市| 大名县| 西贡区| 会宁县| 伊吾县| 炉霍县| 江都市| 富蕴县| 高密市| 健康| 衡阳县| 伊通| 霞浦县| 潞西市| 鄂州市| 白水县| 安丘市| 陆良县| 白山市| 栾川县| 从江县| 清苑县| 桐乡市| 汶上县|