中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      javascript閉包的定義及應用實例分析

      時間:2024-08-25 16:39:02 JavaScript 我要投稿
      • 相關推薦

      javascript閉包的定義及應用實例分析

        官方解釋

        “閉包”是一個擁有許多變量和綁定了這些變量的環境表達式(通常是一個函數),因而這些變量也是環境表達式的一部分。

        通俗解釋

        Javascript中所有的函數都是一個閉包。不過一般來說,嵌套的function產生的閉包更為強大,也是大部分時候我們所說的“閉包”。看如下代碼:

        復制代碼 代碼如下:

        這段腳本在執行完var c=a()之后,變量c實際上就指向了函數b,b中用到了變量i,再執行c()后就會彈出一個窗口顯示i的值。這段代碼其實就是一個閉包,為什么?因為函數a外的變量c引用了函數a內部的函數b。

        Javascript的垃圾回收機制

        由于javascript特殊的垃圾回收機制,才導致了閉包的產生。Javascript垃圾回收機制的大體規則如下:

        在javascript中,如果一個對象不再被引用,那么這個對象就會被GC回收。如果兩個對象相互引用,而不再被第3者引用,那么這兩個互相引用的對象也會被回收。而在上述的腳本中,函數a被b引用,函數b又被函數a外的c所引用,這就是為什么函數a執行后不被回收的原因。

        閉包的應用場景

        1. 保護函數內的變量安全。以上面的例子為例,函數a中變量i只有函數b才能訪問,而無法通過其他途徑訪問到,因此保護了i的安全性。

        2. 在內存中維持一個變量。依然如上面的例子,由于閉包,函數a中的i一直存在于內存中,因此每次執行c(),i都會加1。

        3. 通過保護變量的安全實現JS私有屬性和私有方法(不能被外部訪問)。如下,私有屬性和私有方法在Constructor外是無法訪問的:

        復制代碼 代碼如下:

        function Constructor(…){

        var that = this;

        var membername = value;

        function membername(…){…}

        }

      【javascript閉包的定義及應用實例分析】相關文章:

      Javascript 閉包引起IE內存泄露分析04-01

      javascript的閉包概念怎么理解03-29

      Javascript函數的定義和用法分析03-31

      JavaScript fontcolor方法入門實例03-29

      JavaScript中push(),join() 函數實例詳解03-31

      抽象語法樹在JavaScript中的應用03-25

      javascript分析運算符用法04-01

      JavaScript類定義原型方法的兩種實現的區別04-02

      德國留學申請實例分析03-19

      主站蜘蛛池模板: 成人性生交大片免费看激情| 在线观看av片永久免费| 亚洲欧美日本人成在线观看| 熟女一区二区三区视频| 亚洲妇女av一区二区| 夫妻一起自拍内射小视频| 留坝县| 在线国产视频精品视频| 久久精品熟女不卡av高清| 在线视频一区二区亚洲| 国产欧美亚洲精品第二区首页| AV在线中出| 精品无码人妻久久久一区二区三区| 2021久久精品国产99国产| 日韩在线中文字幕一区二区三区| 化隆| 一区二区三区福利在线视频| 色噜噜狠狠色综合欧洲| 久久精品国产72国产精福利| 国产精品色内内在线播放| 中文字幕人妻丝袜成熟乱| 永久免费的拍拍拍网站| 水蜜桃在线视频在线观看| 手机在线中文字幕国产| 蜜桃av观看亚洲一区二区| 亚洲国产一区久久yourpan| 湛江市| 荔波县| 水城县| 营山县| 博兴县| 精品午夜一区二区三区| 晋州市| 国产日产久久福利精品一区| 最新亚洲综合中文字幕在线| 国产日韩亚洲一区二区| 国产精品剧情一区二区三区av| 日韩av在线不卡二区高清| 国产三级精品三级男人的天堂,| 勐海县| 抚州市|