JavaScript也可以玩私有方法

JavaScript中有一个特性:任何两个对象都不相等也不全等

利用这个特点,我们也可以让JavaScript玩一个私有方法出来.

具体思路如下:

  我们利用Key对比的方式,如果Key相等则可以调用,否则就出错.当然也得把这个Key给藏起来.

  代码如下:

;;;(function(){
    var  Key = {} // 我们要用到有Key 
    window['MyObj'] = {
        _say : function( msg , key ){
            if ( key !== Key ){
                 throw "This is a private method !"
            }else{
                 alert( msg )
            }
        },
        say : function( msg ){
            this._say( msg , Key );
        }
    }
   }());

这样_say方法虽然外部可见,但调用的时候由于匿名函数外部拿不到这个Key故而就没办法在外部调用这个_say方法了.

posted @ 2011-06-15 13:56  Darrel.Hsu  阅读(362)  评论(2编辑  收藏  举报