亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript 自執行函數(閉包)

2019-11-06 06:03:03
字體:
來源:轉載
供稿:網友

1. 全局污染

在變量聲明的時候有一個規則:重復聲明無效var num = 123;var num = 'abc';重復聲明的代碼不會報任何錯誤,但是其聲明特征就沒有了,會轉換成普通賦值語句故,上述代碼與下面代碼等價var num = 123;num = 'abc';例:
<script src="jquery.js"></script><script>    var $ = function(selector){        return document.querySelectorAll(selector);//給$重新賦值了    };    $('div').CSS(...);//報錯,此時$('div')是nodeList類型,沒有css方法</script>

2. 閉包

起因:在函數內部聲明的數據,在函數外是不能夠直接訪問的。閉包含義:就是包裹、包裝的意思。閉表示封閉,即不可訪問。    所謂的閉包就是一個具有封閉的特性,同時具有包裹的特性的一種結構。    從代碼的角度說,所謂的閉包就是函數。① 函數內聲明的變量,外界無法訪問,即封閉性。② 函數本身又是一個封裝單位,利用函數可以封裝代碼,因此一個函數也是一個包裹結構。因此函數既有包裹的特性,也有封閉的特性,因此可以直接稱呼函數為閉包 (closure)凡是函數要執行,就會分配內存空間以供函數執行如果函數執行結束,內存會被釋放,即可以重復使用這個定義是有缺陷的。如果函數內部將數據的引用返回到外部,那么就可以保證數據被一直占用。
function foo(){    var num = 123;    function func(){        return num;    }    return func;}var f = foo(); // f指向func,foo不可以被釋放,因為func// num不能被釋放,因為f會返回該數據

3. 所謂的閉包就是函數,其特點是函數內定義的變量,在函數外是無法訪問的。

但是閉包需要解決的問題是如何間接的訪問到這些數據。如何訪問函數中的數據?① 最簡單的訪問方式:返回
function foo(){var num = 123;return num;}var res1 = foo();var res2 = foo();//但兩次訪問的并不是同一個數據② 多次訪問,f 只允許調用一次
var res1 = foo();var res2 = res1;③ 使得函數返回一個函數,利用函數返回數據
function f(){var num = 123;return function(){        //作用域訪問規則,是可以訪問num的    return num;    };}var foo = f();//先執行,只調用了一次var res1 = foo();//獲取num的值var res2 = foo();//訪問的是同一個值將2級鏈返回到0級鏈中,利用2級鏈可以訪問1級鏈的特性,使得0級鏈間接的訪問到1級鏈。因此這個數據是不能被銷毀的,即不能被釋放。小結:所謂的閉包,就是一個函數,因為函數中聲明的變量,外界無法訪問,函數就構成了封閉結構,因此成為閉包。同時如果需要訪問函數中的數據,可以考慮利用函數返回一個函數,使用返回的函數操作函數內的數據,以使得函數外可以通過這個函數內返回的函數,訪問內部的數據。4. 補充:內存釋放在 js 中凡是不被使用的數據,可以被釋放

5. 閉包的用法

(1)作為沙箱模式

沙箱:就是一個獨立的與外界隔離的運行環境(function)
(function(){    //此處的代碼,對外隔離,外界無法訪問,但是可以執行})();暴露方式:
var foo = (function(){function foo(){}    return foo;})();

(2)帶有緩存功能的函數

var func = (function(){    //私有數據    return function foo(){    };})();//func帶有私有數據遞歸中,為什么性能低?因為重復的太多了,將已經計算好的存儲起來,如果沒有計算,就遞歸,但是算完以后還是存起來。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品一区电影| 欧美日韩成人网| 欧美成人黑人xx视频免费观看| 亚洲aaa激情| 91在线视频免费| 91视频免费网站| 欧美肥老妇视频| 亚洲国产精品成人av| 成人在线视频网站| 九色精品免费永久在线| 中文字幕精品av| 91精品综合久久久久久五月天| 色偷偷偷综合中文字幕;dd| 国产91精品久久久久久| 国产成人激情视频| 最近2019中文字幕第三页视频| 国产精品欧美一区二区| 狠狠色狠狠色综合日日五| 欧美亚洲成人免费| 欧美视频在线观看免费网址| 欧美激情一级欧美精品| 亚洲成人激情小说| 中文字幕亚洲激情| 日本精品久久久久影院| 欧美精品一区二区免费| 91成人在线观看国产| 日韩影视在线观看| www国产精品视频| 国产精品电影在线观看| 欧美大片在线免费观看| 国产一区av在线| 欧美精品精品精品精品免费| 欧美肥臀大乳一区二区免费视频| 亚洲图片欧洲图片av| 国产欧美精品在线| 欧美日韩免费在线| 亚洲午夜未满十八勿入免费观看全集| 全色精品综合影院| 欧美激情综合色综合啪啪五月| 韩国三级日本三级少妇99| 日韩av色在线| 国产97在线|日韩| 久久男人av资源网站| 中文字幕久热精品在线视频| 国产精品中文字幕在线观看| 日韩成人小视频| 国产视频精品va久久久久久| 热门国产精品亚洲第一区在线| 亚州欧美日韩中文视频| 欧美整片在线观看| 亚洲影院色无极综合| 欧美日韩国产一区中文午夜| 日韩av男人的天堂| 国产精品第七影院| 欧美日韩国产成人高清视频| 日韩av电影中文字幕| 国产精品久久久久免费a∨| 久久久999精品免费| xxxx欧美18另类的高清| 亚洲精品电影在线| 国产日韩av在线播放| 午夜精品一区二区三区在线视| 欧美成年人网站| 亚洲精品视频播放| 午夜精品久久久久久久久久久久| 国产精品久久久久av免费| 久久综合久久88| 久久精品国产成人精品| 久久91亚洲人成电影网站| 国产精品pans私拍| 久久久精品2019中文字幕神马| 中文字幕av一区二区| 97香蕉久久夜色精品国产| 国产日韩欧美在线| 亚洲成人黄色在线| 久久视频免费在线播放| 国产成人涩涩涩视频在线观看| 精品亚洲国产视频| 国产精品视频网址| 亚洲人成在线免费观看| 精品久久久91| 欧美精品精品精品精品免费| 欧美日韩一区二区三区在线免费观看| 欧美影院久久久| 亚洲欧洲自拍偷拍| 91精品国产91久久久久久| 性欧美亚洲xxxx乳在线观看| 久久免费精品日本久久中文字幕| 亚洲高清不卡av| 亚洲国产成人精品电影| 免费不卡在线观看av| 久久久999精品| 久久精品国产2020观看福利| 欧美精品videos另类日本| 国产欧美精品久久久| 国产精品成人v| 久久久久久久一区二区| 草民午夜欧美限制a级福利片| 欧美制服第一页| 色悠久久久久综合先锋影音下载| 激情av一区二区| xxxx欧美18另类的高清| 欧美丰满少妇xxxx| 精品久久久久久亚洲精品| 日韩成人网免费视频| 中文字幕亚洲精品| 欧美区在线播放| 精品国产拍在线观看| 精品国产电影一区| 日韩中文字幕第一页| 国产噜噜噜噜噜久久久久久久久| 欧美电影免费观看大全| 国产精品久久久av久久久| 亚洲视频国产视频| 久久噜噜噜精品国产亚洲综合| 狠狠躁夜夜躁人人躁婷婷91| 国产精品美女久久久久av超清| 国产视频综合在线| 欧美成人性色生活仑片| 91精品在线影院| 精品精品国产国产自在线| 中文字幕久精品免费视频| 午夜精品一区二区三区在线视| 日韩av最新在线观看| 久久精品99久久久久久久久| 国产精品欧美一区二区| 日韩av快播网址| 日韩国产精品亚洲а∨天堂免| 欧美性生交xxxxxdddd| 欧美亚洲另类激情另类| 中文字幕精品久久久久| 亚洲欧洲av一区二区| 两个人的视频www国产精品| 欧美理论片在线观看| 57pao国产精品一区| 国产精品av免费在线观看| 国产精品夫妻激情| 欧美日韩国产成人在线观看| 欧美日韩在线第一页| 色999日韩欧美国产| 免费91在线视频| 国产精品三级美女白浆呻吟| 日韩在线观看免费av| 欧美一区二区三区免费视| 日韩精品在线免费观看| 国产精品美女av| 亚洲乱码一区av黑人高潮| 亚洲乱码国产乱码精品精天堂| 久久影院在线观看| 国产精品扒开腿做爽爽爽的视频| 国产成人综合一区二区三区| 两个人的视频www国产精品| 九九久久国产精品| 久久露脸国产精品| 亚洲缚视频在线观看| 精品国产鲁一鲁一区二区张丽| 欧美多人乱p欧美4p久久| 日韩最新中文字幕电影免费看| 亚洲天堂久久av| 久久人人97超碰精品888| 亚洲日本成人女熟在线观看| 精品国内产的精品视频在线观看| 欧美在线一级va免费观看| 日韩视频―中文字幕|