日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

模仿块级作用域

發布時間:2023/12/10 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 模仿块级作用域 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

模仿塊級作用域

JavaScript中沒有塊級作用域,這意為著在塊語句中定義的變量,實際上是包含在函數中而非語句中創建的。

下面的這個實例可以看出:

function outputNumbers(count){for (var i=0; i < count; i++){alert(i);}alert(i); //count }outputNumbers(5);//0 1 2 3 4 5(for塊語句外輸出的)

雖然沒有塊級作用域,但是可以通過匿名函數來模仿塊級作用域

用作塊級作用域(通常稱為私有作用域)的匿名函數語法如下表示:

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

以上代碼定義并立即調用了一個匿名函數。將函數申明包含在一對圓括號中,表示它實際上是一個函數表達式。

注意,下面這種寫法會出錯

//錯誤寫法 function(){//這里是塊級作用域 }();

如果一條語句是以function關鍵字開始,那么這段會被JavaScript解析器認為是函數定義。而函數定義是不能被立即執行的,因此就必須有一個辦法,使解析器可以將之識別為函數表達式。因為解析器識別函數定義的條件是以function關鍵字開始,那么只要在function關鍵字的前面有任何其他的元素,就會從函數定義轉變為函數表達式,所以當我們在其前面填括號就會變成函數表達式了。

下面這種寫法也可以:

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

現在讓我們重新寫開頭的那個實例:

function outputNumbers(count){(function () {for (var i=0; i < count; i++){alert(i);}})();alert(i); //ReferenceError: i is not defined,出現錯誤了outputNumbers(5);//0 1 2 3 4

總結:無論在什么地方,只要臨時需要使用變量,就可以使用私有作用域,通過創建私有作用域,每個人都可以使用自己的變量,又不用擔心污染全局作用域。

轉載于:https://www.cnblogs.com/YeChing/p/6361497.html

總結

以上是生活随笔為你收集整理的模仿块级作用域的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。