JavaScript中實現(xiàn)塊作用域的方法
更新時間:2010年04月01日 17:45:25 作者:
在Javascript中由于沒有作用域的概念,所以很容易發(fā)生標(biāo)識符名稱的沖突,尤其是在比較大的項目中,這類情況更容易發(fā)生
例如下面這段代碼
{
var temp = "12";
}
alert(temp); //輸出 12
如果按照通常的編程經(jīng)驗,那么alert函數(shù)是不可以訪問到temp變量的,因為它在另外一個塊中,但是在JavaScript中,卻沒有塊作用域的概念,所以這種語法對JS不起作用,但是我們在寫JS程序的時候,尤其是比較大的程序或是程序庫,為了防止命名沖突,又需要一種控制變量作用域的機制,所以這里介紹一種比較普遍的方式,來實現(xiàn)塊作用域的概念,代碼如下:
(function() {
var temp = "123";
})();
alert(temp); //輸出錯誤
如上面的代碼,定義了一個函數(shù)表達(dá)式,然后馬上調(diào)用它,這種形式模仿了塊作用域的概念,保護(hù)了塊內(nèi)的命名空間,這種方式在一些比較大的程序庫中很好用
(例如JQuery),有效的避免了命名沖突。事實上JQuery正是使用的這種方式來實現(xiàn)塊作用域的。
復(fù)制代碼 代碼如下:
{
var temp = "12";
}
alert(temp); //輸出 12
如果按照通常的編程經(jīng)驗,那么alert函數(shù)是不可以訪問到temp變量的,因為它在另外一個塊中,但是在JavaScript中,卻沒有塊作用域的概念,所以這種語法對JS不起作用,但是我們在寫JS程序的時候,尤其是比較大的程序或是程序庫,為了防止命名沖突,又需要一種控制變量作用域的機制,所以這里介紹一種比較普遍的方式,來實現(xiàn)塊作用域的概念,代碼如下:
復(fù)制代碼 代碼如下:
(function() {
var temp = "123";
})();
alert(temp); //輸出錯誤
如上面的代碼,定義了一個函數(shù)表達(dá)式,然后馬上調(diào)用它,這種形式模仿了塊作用域的概念,保護(hù)了塊內(nèi)的命名空間,這種方式在一些比較大的程序庫中很好用
(例如JQuery),有效的避免了命名沖突。事實上JQuery正是使用的這種方式來實現(xiàn)塊作用域的。
您可能感興趣的文章:
- JavaScript詞法作用域與調(diào)用對象深入理解
- JavaScript中的作用域鏈和閉包
- javascript作用域容易記錯的兩個地方分析
- 深入理解JavaScript系列(14) 作用域鏈介紹(Scope Chain)
- 淺談javascript中的作用域
- js變量以及其作用域詳解
- js使用函數(shù)綁定技術(shù)改變事件處理程序的作用域
- javascript權(quán)威指南 學(xué)習(xí)筆記之變量作用域分享
- javascript中的作用域scope介紹
- 關(guān)于JavaScript中var聲明變量作用域的推斷
- JavaScript.The.Good.Parts閱讀筆記(二)作用域&閉包&減緩全局空間污染
- Javascript 變量作用域 兩個可能會被忽略的小特性
- Javascript學(xué)習(xí)筆記3 作用域
- JavaScript的變量作用域深入理解
- Javascript 作用域使用說明
- JavaScript 變量作用域及閉包
- javascript 變量作用域 代碼分析
- javascript變量作用域使用中常見錯誤總結(jié)
相關(guān)文章
ElementUI table無縫循環(huán)滾動的示例代碼
這篇文章主要介紹了ElementUI table無縫循環(huán)滾動的示例代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08基于Flowplayer打造一款免費的WEB視頻播放器附源碼
Flowplayer是一款免費的WEB視頻播放器。它支持播放flv、swf等流媒體和圖片文件,能夠非常流暢的播放視頻文件,支持自定義配置和擴展。下面本篇文章給大家介紹基于Flowplayer打造一款免費的WEB視頻播放器,需要的朋友可以參考下2015-09-09Bootstrap每天必學(xué)之導(dǎo)航條(二)
Bootstrap每天必學(xué)之導(dǎo)航條,進(jìn)一步向大家講解了導(dǎo)航條養(yǎng)殖,以及導(dǎo)航條中元素的使用方法,感興趣的小伙伴們可以參考一下2016-03-03