我有一个构造函数:
function Constructor(parameter) {
this._property = parameter;
}
以后
Constructor.prototype.someFunction = function() {...}
JSLint抱怨
意想不到的悬挂&#39; <&#39;在&#39; _property&#39;
但是当我读到这个警告的解释时,我发现了这个:
ESLint仅针对变量和函数标识符而不是对象属性标识符引发此警告。 jslinterrors.com
我认为this._property
将是一个对象属性...所以我希望JSLint应该对此感到满意。我在这里做错了什么?
答案 0 :(得分:1)
js没有“私人”的概念。带有下划线字符的标识符通常用于表示私有变量,但此处它不提供任何隐私
如果您使用JSLint
,则可以通过将nomen
(命名法)选项设置为true
来修复错误。
/*jslint nomen: true */
function Constructor(parameter) {
this._property = parameter;
}
答案 1 :(得分:0)
您可以通过记录构造函数来自行查看this
未添加到方法/变量的前面:
function Constructor(parameter) {
this._property = parameter;
this.property = parameter;
}
var x = new Constructor(5);
console.log(x);
// logs:
{
_property: 5, // dangling error
property: 5
}
您可以按照说明关闭错误HERE
的通知或不使用下划线。