網(wǎng)上關(guān)于javascript面向?qū)ο笠呀?jīng)講得很濫了,但是我發(fā)現(xiàn),沒有一篇文章提到如何實現(xiàn)私有靜態(tài)變量。
很多文章甚至說:“很遺憾,不知道如何實現(xiàn)私有靜態(tài)變量?!?/P>
不知道是不是我不夠仔細?
不管了,自己動手,豐衣足食!
大家知道,私有實例變量的原理是根據(jù)作用域。
私有實例變量是在javascript的function內(nèi)部用var關(guān)鍵字實現(xiàn),只在function內(nèi)部有效。
仿照這個,提出私有靜態(tài)變量的解決方案:
<script language=javascript type=text/javascript>
var jsclass = (function() {
var privatestaticvariable = 私有靜態(tài)變量;
var privatestaticmethod = function() {
alert(調(diào)用私有靜態(tài)方法);
};
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(改變的私有靜態(tài)變量);
alert(testobject2.test1());
testobject2.test3();
</script>
注意不是直接定義javascript類,而是用一個匿名的function作為靜態(tài)變量的容器,并返回javascript類。