例如下面下面这个Div类的局部变量x,y, 要不要在start中写成this.x,this.y的形式?哪种是好的写作习惯? 如果换成后者,有必要在类顶部那样像var x,y这样声明下吗?function Div(){
    var x,y
this.start=function(a,b){
    x=a;
y=b;
    this.method1();
    this.method2();
}
this.method1=function(){
alert(x+y+1)
}
this.method2=function(){
alert(x+y+100)
}
}
var obj=new Div()
obj.start(10,10)

解决方案 »

  1.   

    这些写法不是什么 写法 / 习惯 上的差别. 他们的在 OOP 中的意义是不同的.
    function Div(){
      this.x = value;  // 这模拟的是: 类的公有成员变量
      var y = 'Im private';  // 这模拟的是: 类的私有成员变量
    }
      

  2.   

    哦, this.y, this.y叫特权属性,x叫私有属性,那我明白了还是用x这种好,省的被实力出的对象篡改对吧?
      

  3.   


    this.y 叫成公有成员就行了, 呵呵
    this.start 一般管它叫 特权函数. 它可以访问私有方法和变量,而它自己也可以被外部的公有函数访问
      

  4.   

    哦 谢谢zsp_1111,我看过那个js设计模式那书,那里叫的特权属行