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声明的变量和方法,但外部可以通过公有方法为桥梁实现与私有变量交互

  建议:为了便于阅读与区分,私有变量和方法在命名前加一个或者两个下划线。