javascript入门之私有变量

开始接触这门语言时,可能都会觉得这门语言缺少访问控制符(如public、private、protected),从而导致

不能定义私有变量和私有方法。但经过进一步了解就会知道javascript同样可以有私有变量。

 

先看javascript的普通函数用法

function sum(a,b){
    
var c = 10;
    
function add(){
        c
++;
    }
    add();
    
return a + b + c;
}
var d = sum(4,5);
alert(d)   
//  20

 

可以看出,外部要和函数sum进行交互,只能通过调用和返回值形式,无法访问里面的参数c和内部函数add()。这对于函数来说属于正常逻辑。

 

接下来看javascript的类用法

function sum(pa,pb) {
    
this.a = pa;
    
this.b = pb;
    
this.show = function(){
        alert(
this.a + this.b);
    }
}
var t = new sum(4,5);
t.show();
alert(t.a);

 

这里通过new创建了sum的对象t。通过t可以调用方法show来显示参数和,也可以直接取参数信息

 

结合两种方式就产生私有变量和方法的效果。

 

 

function sum(pa,pb) {
    
var __c = 10;          //私有变量
    function __addc(){     //私有方法
       __c++;
    }
    
this.a = pa;         //公有变量
    this.b = pb;         //公有变量
    this.setc = function(pc){    //公有方法
         __c = pc;
        __addc();
    }
    
this.show = function(){      //公有方法 
        alert(this.a + this.b + __c);
    }
}
var t = new sum(4,5);
t.setc(
1);
t.show();

 

从这个例子可以看出,外部无法调用var声明的变量和方法,但外部可以通过公有方法为桥梁实现与私有变量交互
建议:为了便于阅读与区分,私有变量和方法在命名前加一个或者两个下划线。

 

 

参考 http://javascript.crockford.com/private.html 

如有错误欢迎指出,呵呵

posted @ 2010-02-22 16:36  随风逐云  阅读(246)  评论(0)    收藏  举报