请问this._point = point;是什么意思,谢谢!

function ComplexCustomOverlay(point, text, mouseoverText){
this._point = point;
this._text = text;
this._overText = mouseoverText;
}
一般构造函数是this.point = point;,为什么要写成this._point = point呢?

阅读 4.3k
5 个回答
this.point = point;

把形参(函数的参数)point赋值给函数的属性point

this._point = point;

把形参(函数的参数)point赋值给函数的属性 _point

两种方式只是属性名字不一样而已,属性名字前面加上下划线_,个人认为只是代码的语法规范,方便自己和别人辨识

很多人有这个习惯将私有成员变量用underscore(_)前缀来定义。

变量名,想怎么定就怎么定的哦

可能作者按照某种规范,比如 作为 对象属性值以 '_'+属性名 的方式来命名罢了

私有属性一般就这样命名,符合规范

这就是个名字不同而已。。

this.point=point;

这两个point不是一回事。。this.point是构造函数本身设置的属性,=point是传进来的参数point
有时候为了防止搞混,就把属性名称加个"_",变成this._point
还有如果属性名称是保留字,比如class、都可以变成this._class

你调用的时候,永远是调用this.属性名,这个属性名随便你取什么

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题