函數(shù)表達(dá)式-模仿塊級作用域

    

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請域名、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、太原網(wǎng)站維護(hù)、網(wǎng)站推廣。

 

模仿塊級作用域

Javascript中沒有塊級作用域的概念,這意味著在塊語句中定義的變量,實(shí)際上是在包含函數(shù)中而非語句中創(chuàng)建的

1     function outputNumbers(count){2         for (var i = 0; i < count; i++){3             console.log(i);4         }5         console.log(i);6     }

在for循環(huán)中定義的局部變量i可以再for循環(huán)外訪問,因?yàn)樽兞縤是定義在outputNumbers()的活動對象中的,因此從它有定義開始,就可以在函數(shù)內(nèi)部隨處訪問它。

 

函數(shù)表達(dá)式-模仿塊級作用域

1     function outputNumbers(count){2         for (var i = 0; i < count; i++){3             console.log(i);4         }5         var i;6         console.log(i);7     }

函數(shù)表達(dá)式-模仿塊級作用域

遇到這種情況,他只會對后續(xù)的聲明視而不見。匿名函數(shù)可以用來模仿塊級作用域并避免這個問題。

1     (function(){2         //這里是塊級作用域3     })();

以上代碼定義并立即調(diào)用了一個匿名函數(shù)。將函數(shù)聲明包含在一堆圓括號中,表示它實(shí)際上是一個函數(shù)表達(dá)式。而緊隨其后的另一對圓括號會立即調(diào)用這個函數(shù)。

 

注意:

1     function(){2         //這里是塊級作用域3     }(); //出錯

function關(guān)鍵字表示一個函數(shù)聲明的開始,而函數(shù)聲明后面不能跟圓括號。然而,函數(shù)表達(dá)式的后面可以跟圓括號。要將函數(shù)聲明轉(zhuǎn)換成函數(shù)表達(dá)式。

無論在什么地方,只要臨時需要一些變量,就可以使用私有作用域

函數(shù)表達(dá)式-模仿塊級作用域

1     function outputNumbers(count){2         (function(){3             for (var i = 0; i < count; i++){4                 console.log(i);5             }6         })();7         console.log(i); //i is not defined8     }

函數(shù)表達(dá)式-模仿塊級作用域

 

 

這種技術(shù)經(jīng)常用在全局作用域中被用在函數(shù)外部,從而限制向全局作用域中添加過多的變量和函數(shù)

1     (function(){2         var now = new Date();3         if (now.getMonth() == 0 && now.getDate() == 1){4             alert("Happy new year");5         }6     })();

其中now現(xiàn)在是匿名函數(shù)中的局部變量,而我們不必在全局作用域中創(chuàng)建它。

 

網(wǎng)頁名稱:函數(shù)表達(dá)式-模仿塊級作用域
轉(zhuǎn)載來源:http://muchs.cn/article20/pgodjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站內(nèi)鏈、網(wǎng)站收錄ChatGPT、品牌網(wǎng)站建設(shè)、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司