JS中閉包的作用


1、執行自執行函數。某些函數可能只需要執行一次而且為了不造成全局污染。聲明變量需要使用var,否則會默認添加到全局對象的屬性上。或者別的函數可能會誤用該屬性。全局對象過於龐大的話,會影響訪問速度。(變量的取值需要從原型鏈上遍歷)

(function(value){
console.log(value)
})(3);

2、作為緩存.第二次使用對象時候,可以不用新建對象。單例模式的實現等等。

var Cache=(function(){
var cache={};
return{
getObj:function(name){
if(name in cache){
return cache[name];
}
var temp=new Object(name);
cache[name]=temp;
return temp;
}
}
})()

3、實現封裝過程。封裝對象中的變量不能直接訪問,提過提供的閉包來訪問。

var person=function(){
var name="no name!";
return {
getName:function(){
return this.name;
},
setName:function(value){
this.name=value;
}
}
}()

4、實現面向對象

總結:閉包就是別的函數中返回出來的函數,這個函數可以訪問返回該函數的函數中內部的變量!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM