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

JavaSript中變量的作用域閉包的深入理解

 更新時間:2014年05月12日 10:36:02   作者:  
js中的變量都是公用的沒有靜態(tài)變量,下面為大家介紹下變量的作用域閉包,需要的朋友可以參考下
復(fù)制代碼 代碼如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
/*
* 1.js中的變量都是公用的.
2.js中沒有靜態(tài)變量
3.閉包:函數(shù)內(nèi)部可以調(diào)用函數(shù)外部的變量;反之,則不行
*/

var r=10;
function test1(){
var r2="abc";
//alert(r)
}
//alert(r2);//不能訪問的函數(shù)內(nèi)部的r2
test1();
//嵌套的函數(shù)中也ok啦
function test2(num1){
function test3(num2,num3){
return num2+num3+num1;
}
return test3(10,20)
}
//alert(test2(30));
//---------循環(huán)中的閉包------------------------
function testfun(){
var r=1;
var arr=[];
for(var x=0;x<3;x++){
r++;
arr[x]=function(){
return r;
}
}
return arr;
}
alert("testfun:"+testfun());
var arr2=testfun();
alert("arr:"+arr2[0]);
alert("arr:"+arr2[1]());
alert("arr:"+arr2[2]());
//==========以上三個彈出框的結(jié)果都是4==========
/*分析原因:
理解一下在JavaScript中函數(shù)是什么?
函數(shù)就是一段可執(zhí)行的代碼塊,函數(shù)也是可以用一個變量表示,比如函數(shù)的第二種定義方式
var add=new Function("a","return a+10");底層的本質(zhì)就是這個函數(shù)名指向
了這一段為變量而創(chuàng)建的可執(zhí)行的代碼。
* 首先當(dāng)testfun函數(shù)執(zhí)行完畢以后,arr[0],arr[1],arr[]中都是存儲了相同的
可執(zhí)行代碼塊function(){
return r
}也就是說上面三個是函數(shù)變量而已,要執(zhí)行它們只需要在變量名稱后面加()就ok了
而且這個時候r的值4
當(dāng)執(zhí)行arr[0]()相當(dāng)于執(zhí)行了這個代碼塊中的代碼。
所以最終的結(jié)果return r,當(dāng)然返回4了。
*/

</script>
</head>
<body>

</body>
</html>

相關(guān)文章

最新評論

本溪| 石林| 永康市| 保亭| 兴国县| 新邵县| 连江县| 偃师市| 尼玛县| 巴青县| 临沂市| 山东省| 巴马| 铜山县| 中方县| 西华县| 南乐县| 余江县| 舟山市| 广南县| 永清县| 汉阴县| 同江市| 芷江| 南安市| 仁怀市| 庆云县| 达州市| 碌曲县| 宜城市| 平谷区| 北安市| 嘉祥县| 辉县市| 太原市| 茶陵县| 邵东县| 南漳县| 芜湖市| 浙江省| 诸城市|