Bobby_at_cnblogs

导航

Javascript面向对象之私有静态变量

转载请保留原始链接:

http://www.cnblogs.com/haogezzh/archive/2010/04/10/1709278.html

原创文章,未经同意,不得转载,站内例外。

 

网上关于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类。

 

转载请保留原始链接:

http://www.cnblogs.com/haogezzh/archive/2010/04/10/1709278.html

原创文章,未经同意,不得转载,站内例外。

 

posted on 2010-04-10 22:47  Bobby_at_cnblogs  阅读(2432)  评论(4编辑  收藏  举报