Javascript &引用;预期';这';“将由类方法使用”;我还是不知道';我不明白

Javascript &引用;预期';这';“将由类方法使用”;我还是不知道';我不明白,javascript,eslint,Javascript,Eslint,我有一个来自ESlint的错误,但我不明白为什么。我读过: 这是: 我还是不明白我做错了什么 我的班级 /*eslint禁用无脉冲*/ /*eslint禁用无未定义*/ 职业选手{ 构造函数(imagePlayer、名称、分数、位置Y、位置X){ this.imagePlayer=imagePlayer; this.name=名称; 这个分数=分数; 这个.x=位置x; 这个。y=位置y; } drawPlayer(){ app.map.mapGame[this.y][this

我有一个来自ESlint的错误,但我不明白为什么。我读过:

这是:

我还是不明白我做错了什么

我的班级

/*eslint禁用无脉冲*/
/*eslint禁用无未定义*/
职业选手{
构造函数(imagePlayer、名称、分数、位置Y、位置X){
this.imagePlayer=imagePlayer;
this.name=名称;
这个分数=分数;
这个.x=位置x;
这个。y=位置y;
}
drawPlayer(){
app.map.mapGame[this.y][this.x]=this.imagePlayer;
}
障碍物(y,x){
让colision=false;
如果(app.map.mapGame[y][x]==1){
console.log(“evalución”);
colision=true;
}
返结肠;
}
最后位置(旧位置、方向){
如果(方向===左| |方向===右){
app.map.mapGame[this.y][this.x-oldPosition]=0;
}否则{
app.map.mapGame[this.y-oldPosition][this.x]=0;
}
}
//动作运动员
运动(方向){
开关(方向){
个案:
如果(此.y>0){
if(this.障碍物(this.y-1,this.x)==false){
这是我的名字;
此。最后位置(-1,方向);
}
}
打破
按大小写:
如果(此.y<9){
if(this.障碍物(this.y+1,this.x)==false){
这个.y++;
此。最后位置(+1,方向);
}
}
打破
案例左:
如果(此.x>0){
这是一本书;
此。最后位置(-1,方向);
}
打破
案例权利:
如果(此.x<14){
这个.x++;
此。最后位置(+1,方向);
}
打破
违约:
控制台日志(“muro”);
打破
}
}//运动

}
linter抱怨说,一个不使用调用它的实例的方法(
this
)本来就不应该是实例方法。这是个坏习惯

你也是

  • 应该使其成为一个
    静态
    方法,被称为
    玩家。障碍物(x,y)
    (可能被重命名为
    CheckGlobalMapForobstructure
  • 应该将该方法移动到它所属的
    Map
    类,因为它正在根据地图内容检查坐标(
    this.mapGame[x][y]

您能指定错误消息吗?@Ambrown希望类方法“obstacli”使用“this”我猜您可以使用障碍()并使用this.x和this.y,而不是询问新位置@去吧,谢谢。我也这么想,但当我使用这个.x时,玩家没有发现障碍物。另一方面,我需要知道新的位置以避免障碍。谢谢。我想知道这种方法是否是最好的,实际上我只是在做一些测试,并试图找到最好的方法(也是最佳实践)。也许我已经将我的解决方案发布到fast,但它只是指ESlint问题,而不是指它是一个好的解决方案。我怀疑我应该创建一个静态方法还是一个普通方法。在
Map
上,您将创建一个普通方法,该方法将使用
this.mapGame[x][y]