如上,閉包的作用有哪些? 謝謝。
閉包的作用有哪些?
慕絲7291255
2018-09-07 14:18:44
TA貢獻1843條經(jīng)驗 獲得超7個贊
定義在一個函數(shù)內(nèi)的函數(shù)。
1.將函數(shù)作為參數(shù)傳入另外一個函數(shù)。
var arr = [2,10,6,9,7,8];var arr1 = arr.sort(function(a,b){ return a-b; }); alert(arr1); //2,6,7,8,9,10alert(arr); //2,6,7,8,9,10
2.實現(xiàn)封裝,管理私有變量和私有方法,將變量(狀態(tài))的變化封裝在安全的環(huán)境中。
var person = function(){ //變量作用域為函數(shù)內(nèi)部,外部無法訪問,不會與外部變量發(fā)生重名沖突 var name = "default"; return { //管理私有變量 getName : function(){ return name; }, setName : function(newName){ name = newName; } } }();
3.匿名自執(zhí)行函數(shù)。在匿名自執(zhí)行函數(shù)傳入一個閉包函數(shù),匿名自執(zhí)行函數(shù)執(zhí)行完立即銷毀,可以減小內(nèi)存消耗。
(function(){ var foo = function(){ alert("執(zhí)行完這個閉包后,立即銷毀"); }; foo();})();
4.讓變量始終保持在內(nèi)存中,內(nèi)存消耗會很大,這是一個缺點。
舉報