在編寫JS代碼一些特定條件的時候,程序開始需要一個變量用來存儲一些聲明后就不能再做操作的數據,這時候可能第一時間會想到Java里面常量的概念。
但是在JS里面沒有定義常量這一說,這時候可以使用JS中有一個關鍵字const可以來定義常量,但目前的瀏覽器似乎還不支持,如果一定要定義一些常量,
其實可以使用閉包,匿名函數實現常量的定義。
代碼如下:
首先定義一個匿名函數
var Class = (function() {
var UPPER_BOUND =
100
;
//定義需要的常量
var Test={};
// 定義了一個靜態方法 獲取常量的方法
Test.getUPPER_BOUND=function() {
return
UPPER_BOUND;
}
return
Test;
})();
該匿名函數類似於Java里面的遞歸,屬於自身調用,在程序一開始的時候會被自動執行。
當要使用該常量的時候,通過.的方式可以獲取定義的常量
var k=Class.getUPPER_BOUND();
當需要定義多個常量的時候也可以這么寫
var Class = (function() {
// Private static attributes.
var constants = {
//定義了多個常量
UPPER_BOUND:
100
,
LOWER_BOUND: -
100
}
var Test={};
// 定義了一個靜態方法
Test.getConstant=function(name){
//獲取常量的方法
return
constants[name];
}
return
Test
})();
當需要使用這些數據的時候
var k1=Class.getConstant(
'UPPER_BOUND'
);
var k2=Class.getConstant(
'LOWER_BOUND'
);
實際效果如下:
我們定義了兩個變量t1,t2,並將它們存入匿名函數中,在存入函數后我們又對值進行了修改。
再次打印存入匿名函數中的值,可以看到函數中的值未改變,與之前我們存入時候的數據一致,通過這種
定義匿名函數的方法可以靈活實現JS中常量的定義。PS:感覺有點投機取巧的意思...