欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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分原始類(lèi)型與引用類(lèi)型(與java、c#類(lèi)似)。Array是引用類(lèi)
型。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

四、 測(cè)試
復(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ò)測(cè)試

相關(guān)文章

  • 通過(guò)一段代碼簡(jiǎn)單說(shuō)js中的this的使用

    通過(guò)一段代碼簡(jiǎn)單說(shuō)js中的this的使用

    本文通過(guò)一段代碼與大家簡(jiǎn)單說(shuō)說(shuō)js中this的使用及相關(guān)問(wèn)題,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助
    2013-07-07
  • 刪除Javascript Object中間的key

    刪除Javascript Object中間的key

    這篇文章介紹了刪除Javascript Object中間的key的方法,然后主要詳談了delete的用法,非常的詳盡,給小伙伴們參考下
    2014-11-11
  • 關(guān)于JS管理作用域的問(wèn)題

    關(guān)于JS管理作用域的問(wèn)題

    本篇文章中,小編為大家介紹關(guān)于JS管理作用域的問(wèn)題,有需要的朋友可以關(guān)注一下
    2013-04-04
  • JS跨域問(wèn)題詳解

    JS跨域問(wèn)題詳解

    本文結(jié)合實(shí)際,分兩種情況討論跨域技術(shù):首先討論不同子域的跨域技術(shù),然后討論完全不同域的跨域技術(shù)。有需要的小伙伴可要看仔細(xì)了。
    2014-11-11
  • JavaScript中的Math.E屬性使用詳解

    JavaScript中的Math.E屬性使用詳解

    這篇文章主要介紹了JavaScript中的Math.E屬性使用詳解,是JS入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-06-06
  • JS中處理時(shí)間之setUTCMinutes()方法的使用

    JS中處理時(shí)間之setUTCMinutes()方法的使用

    這篇文章主要介紹了JavaScript中處理時(shí)間之setUTCMinutes()方法的使用,是JavaScript入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-06-06
  • javaScript面向?qū)ο罄^承方法經(jīng)典實(shí)現(xiàn)

    javaScript面向?qū)ο罄^承方法經(jīng)典實(shí)現(xiàn)

    很多人都說(shuō)JavaScript不能算是面向?qū)ο蟮淖兂烧Z(yǔ)言。但是JavaScript的類(lèi)型非常松散,也沒(méi)有編譯器,但是我們可以模仿著其他語(yǔ)言實(shí)現(xiàn)面向?qū)ο蟮姆绞絹?lái)實(shí)現(xiàn)JavaScript的面向編程
    2013-08-08
  • 辨析JavaScript中的Undefined類(lèi)型與null類(lèi)型

    辨析JavaScript中的Undefined類(lèi)型與null類(lèi)型

    Undefined與null都是js中的基本數(shù)據(jù)類(lèi)型,然而正如它們的名字那樣,未初始化和空并不相同,下面我們就來(lái)詳細(xì)辨析JavaScript中的Undefined類(lèi)型與null類(lèi)型:
    2016-05-05
  • 淺析JavaScript中的delete運(yùn)算符

    淺析JavaScript中的delete運(yùn)算符

    這篇文章主要是對(duì)JavaScript中的delete運(yùn)算符進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-11-11
  • Javascript學(xué)習(xí)筆記之函數(shù)篇(四):arguments 對(duì)象

    Javascript學(xué)習(xí)筆記之函數(shù)篇(四):arguments 對(duì)象

    JavaScript中arguments函數(shù)對(duì)象是該對(duì)象代表正在執(zhí)行的函數(shù)和調(diào)用它的函數(shù)的參數(shù)。JavaScript 函數(shù)中 arguments 為特殊對(duì)象,無(wú)需明確指出參數(shù)名,就能訪問(wèn)它們。
    2014-11-11

最新評(píng)論