學習文章
----阮一峰的網絡日志
---- js閉包的用途
總結筆記
閉包定義:定義在一個函數內部的函數,靜態保存所有了父級作用域的內部函數。
作用:
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,10
alert(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.讓變量始終保持在內存中,內存消耗會很大,這是一個缺點。
