JS的私有靜態(tài)變量

字號:


    網(wǎng)上關于Javascript面向對象已經(jīng)講得很濫了,但是我發(fā)現(xiàn),沒有一篇文章提到如何實現(xiàn)私有靜態(tài)變量。
    很多文章甚至說:“很遺憾,不知道如何實現(xiàn)私有靜態(tài)變量?!?BR>    不知道是不是我不夠仔細?
    不管了,自己動手,豐衣足食!
    大家知道,私有實例變量的原理是根據(jù)作用域。
    私有實例變量是在Javascript的function內部用var關鍵字實現(xiàn),只在function內部有效。
    仿照這個,提出私有靜態(tài)變量的解決方案:
    <script language="javascript" type="text/javascript">
    var JSClass = (function() {
    var privateStaticVariable = "私有靜態(tài)變量";
    var privateStaticMethod = function() {
    alert("調用私有靜態(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類。