对于一个类里面,每个方法都要使用的一些变量,请问写成局部变量好,还是属性好?
例如下面下面这个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)
------解决方案--------------------这些写法不是什么 写法 / 习惯 上的差别. 他们的在 OOP 中的意义是不同的.
function Div(){
this.x = value; // 这模拟的是: 类的公有成员变量
var y = 'Im private'; // 这模拟的是: 类的私有成员变量
}
------解决方案--------------------
this.y 叫成公有成员就行了, 呵呵
this.start 一般管它叫 特权函数. 它可以访问私有方法和变量,而它自己也可以被外部的公有函数访问