網上關于Javascript面向對象已經講得很濫了,但是我發現,沒有一篇文章提到如何實現私有靜態變量。
很多文章甚至說:“很遺憾,不知道如何實現私有靜態變量。”
不知道是不是我不夠仔細?
不管了,自己動手,豐衣足食!
大家知道,私有實例變量的原理是根據作用域。
私有實例變量是在Javascript的function內部用var關鍵字實現,只在function內部有效。
仿照這個,提出私有靜態變量的解決方案:
<script language="javascript" type="text/javascript">
var JSClass = (function() {
var privateStaticVariable = "私有靜態變量";
var privateStaticMethod = function() {
alert("調用私有靜態方法");
};
return function() {
this.test1 = function() {
return privateStaticVariable;
}
this.test2 = function(obj) {
privateStaticVariable = obj;
}
this.test3 = function() {
privateStaticMethod();
}
};
})();
var testObject1 = new JSClass();
var testObject2 = new JSClass();
alert(testObject1.test1());
testObject1.test2("改變的私有靜態變量");
alert(testObject2.test1());
testObject2.test3();
</script>
注意不是直接定義Javascript類,而是用一個匿名的function作為靜態變量的容器,并返回Javascript類。
更多信息請查看IT技術專欄