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

有關js的變量作用域和this指針的討論

 更新時間:2010年12月16日 22:30:24   作者:  
在ECMAScript中,只有兩種執(zhí)行環(huán)境,全局環(huán)境和函數(shù)環(huán)境,每個函數(shù)都是一個執(zhí)行環(huán)境,包括嵌套函數(shù)。換句話說,其他情況下即使變量聲明在一對大括號中,在括號外部仍然可以訪問這些變量
一、變量作用域:[P71]

這一句話說的非常精辟:“在ECMAScript中,只有兩種執(zhí)行環(huán)境,全局環(huán)境和函數(shù)環(huán)境,每個函數(shù)都是一個執(zhí)行環(huán)境,包括嵌套函數(shù)。換句話說,其他情況下即使變量聲明在一對大括號中,在括號外部仍然可以訪問這些變量”。以下給出例子:
復制代碼 代碼如下:

for(var i=0; i<5; i++) {
var num = 20; // 在for語句中聲明的變量
}
alert(num); // 在for語句外部調用變量,仍然可以得到num的值

對異常語句也同樣可以:
復制代碼 代碼如下:

try {
var num = 20; // 在try語句中聲明的變量
a = b; // 引起一個異常
} catch(e) {
alert(num); // 在catch語句中調用變量,將得到20
} finally {
alert(num); // 在finally語句中調用變量,將得到20
}
alert(num); // 在try語句外部調用變量,將得到20

除了上面所演示的這兩種語句外,一對大括號也無法構成一個執(zhí)行環(huán)境,例如:
復制代碼 代碼如下:

{ var num = 1;3 }

二、this指針:[P83]

在這里列出this在ECMAScript中的不同含義:

(1) 在全局執(zhí)行環(huán)境中使用this,表示Global對象,在瀏覽器中就是window對象。

(2) 當在函數(shù)執(zhí)行環(huán)境中使用this時,情況就有些復雜了。如果函數(shù)沒有明顯的作為非window對象的屬性,而只是定義了函數(shù),不管這個函數(shù)是不是定義在另一個函數(shù)中,這個函數(shù)中的this仍然表示window對象。如果函數(shù)顯示地作為一個非window對象的屬性,那么函數(shù)中的this就代表這個對象。(當然可以使用apply或者call函數(shù)來取代默認this的引用,詳見[P88])

(3) 當通過new運算符來調用函數(shù)時,函數(shù)被當做一個構造函數(shù),this指向構造函數(shù)創(chuàng)建出來的對象。
參考:
《JavaScript基礎與案例開發(fā)詳解》清華大學出版社

相關文章

最新評論

鞍山市| 扶风县| 阿图什市| 平南县| 呼伦贝尔市| 岢岚县| 健康| 灵丘县| 辽阳县| 法库县| 枝江市| 新昌县| 门源| 扎兰屯市| 玉树县| 陇川县| 盐城市| 海门市| 安国市| 宁强县| 揭东县| 清水河县| 噶尔县| 阳春市| 宜阳县| 扬州市| 榆中县| 寻甸| 金堂县| 长汀县| 车致| 华安县| 芦山县| 汽车| 揭西县| 新竹县| 临沧市| 孟村| 平远县| 手游| 建德市|