如上,閉包的作用有哪些? 謝謝。
閉包的作用有哪些?
慕絲7291255
2018-09-07 14:18:44
TA貢獻1843條經驗 獲得超7個贊
定義在一個函數內的函數。
1.將函數作為參數傳入另外一個函數。
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.實現封裝,管理私有變量和私有方法,將變量(狀態)的變化封裝在安全的環境中。
var person = function(){ //變量作用域為函數內部,外部無法訪問,不會與外部變量發生重名沖突 var name = "default"; return { //管理私有變量 getName : function(){ return name; }, setName : function(newName){ name = newName; } } }();
3.匿名自執行函數。在匿名自執行函數傳入一個閉包函數,匿名自執行函數執行完立即銷毀,可以減小內存消耗。
(function(){ var foo = function(){ alert("執行完這個閉包后,立即銷毀"); }; foo();})();
4.讓變量始終保持在內存中,內存消耗會很大,這是一個缺點。
舉報