对于一个类里面,每个方法都要使用的一些变量,请问写成局部变量好,还是属性好?

coglass 2012-12-01 09:56:37
例如下面下面这个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)
...全文
147 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
coglass 2012-12-01
  • 打赏
  • 举报
回复
我刚查了下,是我记错了,没有专门的提过叫特权属性
coglass 2012-12-01
  • 打赏
  • 举报
回复
哦 谢谢zsp_1111,我看过那个js设计模式那书,那里叫的特权属行
HolyNova 2012-12-01
  • 打赏
  • 举报
回复
引用 2 楼 coglass 的回复:
哦, this.y, this.y叫特权属性,x叫私有属性,那我明白了还是用x这种好,省的被实力出的对象篡改对吧?
this.y 叫成公有成员就行了, 呵呵 this.start 一般管它叫 特权函数. 它可以访问私有方法和变量,而它自己也可以被外部的公有函数访问
coglass 2012-12-01
  • 打赏
  • 举报
回复
哦, this.y, this.y叫特权属性,x叫私有属性,那我明白了还是用x这种好,省的被实力出的对象篡改对吧?
HolyNova 2012-12-01
  • 打赏
  • 举报
回复
这些写法不是什么 写法 / 习惯 上的差别. 他们的在 OOP 中的意义是不同的.

function Div(){
  this.x = value;  // 这模拟的是: 类的公有成员变量
  var y = 'Im private';  // 这模拟的是: 类的私有成员变量
}

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧