DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> javascript閉包的作用
javascript閉包的作用
編輯:JavaScript基礎知識     
閉包的用途

1)緩存:在項目中有些變量的值會在多出用到,如果直接把變量定義成全局變量也能解決問題,但是危險很大,因為可能發生變量重名的問題,這樣有可能出現潛在的bug。那麼用閉包做一個專門用於存放變量的緩存,就可以解決這個問題。

例子:

//CachedSearchBox就是一個存放變量的工具

var CachedSearchBox = (function(){
var cache = {};
count = [];
return {
getCache : function(dsid){
if(dsid in cache) {
return cache[dsid];
}
},
setCache : function(dsid,data){
cache[dsid] = data;
}
}
})();
var a = [1,2,3,4,5];
CachedSearchBox.setCache('a',a);//可以把變量存放在cache中
console.info(CachedSearchBox.getCache('a'));//在需要的地方直接拿出來就行

CachedSearchBox.setCache('a',['a','b','c','d']);
console.info(CachedSearchBox.getCache('a'));

2)實現封裝

閉包的另一個重要用途是實現面向對象中的對象,傳統的對象語言都提供類的模板機制,這樣不同的對象(類的實例)擁有獨立的

成員及狀態,互不干涉。雖然JavaScript中沒有類這樣的機制,但是通過使用閉包,我們可以模擬出這樣的機制。

function Person(){

var name = "default";

return {

getName : function(){

return name;

},

setName : function(newName){

name = newName;

}

}

};

var john = Person();

console.info(john.getName());

john.setName("john");

console.info(john.getName());

var jack = Person();

console.info(jack.getName());

jack.setName("jack");

console.info(jack.getName());

運行結果如下:

default

john

default

jack
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved