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

有關(guān)js的變量作用域和this指針的討論

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

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

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

對(duì)異常語(yǔ)句也同樣可以:
復(fù)制代碼 代碼如下:

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

除了上面所演示的這兩種語(yǔ)句外,一對(duì)大括號(hào)也無(wú)法構(gòu)成一個(gè)執(zhí)行環(huán)境,例如:
復(fù)制代碼 代碼如下:

{ var num = 1;3 }

二、this指針:[P83]

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

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

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

(3) 當(dāng)通過(guò)new運(yùn)算符來(lái)調(diào)用函數(shù)時(shí),函數(shù)被當(dāng)做一個(gè)構(gòu)造函數(shù),this指向構(gòu)造函數(shù)創(chuàng)建出來(lái)的對(duì)象。
參考:
《JavaScript基礎(chǔ)與案例開發(fā)詳解》清華大學(xué)出版社

相關(guān)文章

  • js自動(dòng)閉合html標(biāo)簽(自動(dòng)補(bǔ)全html標(biāo)記)

    js自動(dòng)閉合html標(biāo)簽(自動(dòng)補(bǔ)全html標(biāo)記)

    假如我有一個(gè)DIV,如果沒有閉合后面的樣式都會(huì)亂了,這樣的代碼可能會(huì)影響后面的樣式,我希望用JS去自動(dòng)閉合這種沒有閉合的標(biāo)簽
    2012-10-10
  • BootStrap daterangepicker 雙日歷控件

    BootStrap daterangepicker 雙日歷控件

    這篇文章主要介紹了BootStrap daterangepicker 雙日歷控件,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-06-06
  • JavaScript 截取字符串代碼實(shí)例

    JavaScript 截取字符串代碼實(shí)例

    這篇文章主要介紹了JavaScript 截取字符串代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • bootstrap模態(tài)框垂直居中效果

    bootstrap模態(tài)框垂直居中效果

    這篇文章主要為大家詳細(xì)介紹了bootstrap模態(tài)框垂直居中效果的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 微信小程序靜默登錄的實(shí)現(xiàn)代碼

    微信小程序靜默登錄的實(shí)現(xiàn)代碼

    這篇文章主要介紹了微信小程序靜默登錄的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • js實(shí)現(xiàn)模糊匹配功能

    js實(shí)現(xiàn)模糊匹配功能

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)模糊匹配功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • JavaScript引用類型Array實(shí)例分析

    JavaScript引用類型Array實(shí)例分析

    這篇文章主要介紹了JavaScript引用類型Array,結(jié)合實(shí)例形式較為詳細(xì)的分析了JavaScript數(shù)組相關(guān)的創(chuàng)建、檢測(cè)、轉(zhuǎn)換、排序、棧、隊(duì)列、引用等各種常見操作技巧,需要的朋友可以參考下
    2018-07-07
  • 微信小程序云開發(fā)實(shí)現(xiàn)數(shù)據(jù)添加、查詢和分頁(yè)

    微信小程序云開發(fā)實(shí)現(xiàn)數(shù)據(jù)添加、查詢和分頁(yè)

    這篇文章主要為大家詳細(xì)介紹了微信小程序云開發(fā)實(shí)現(xiàn)數(shù)據(jù)添加、查詢和分頁(yè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • JavaScript彈出窗口方法匯總

    JavaScript彈出窗口方法匯總

    這篇文章主要介紹了JavaScript彈出窗口方法,非常實(shí)用的功能,需要的朋友可以參考下
    2014-08-08
  • JS實(shí)現(xiàn)上下左右對(duì)稱的九九乘法表

    JS實(shí)現(xiàn)上下左右對(duì)稱的九九乘法表

    九九乘法表使用很多種語(yǔ)言都可以實(shí)現(xiàn),本文給大家介紹js使用for、while循環(huán)來(lái)完成四種對(duì)稱的九九乘法表,對(duì)九九乘法表需要的朋友參考下
    2016-02-02

最新評(píng)論