同一类中的Javascript调用方法未定义?

同一类中的Javascript调用方法未定义?,javascript,class,methods,undefined,Javascript,Class,Methods,Undefined,所以我对js比较陌生,我试图在我的“recordInputs”类中调用一个方法“lerp”。recordInputs类在其他地方调用,在没有lerp函数的情况下可以正常工作。问题是,当playerImage.x/y等于lerp函数时,出现控制台错误,并表示“lerp”方法未定义 代码如下: class PlayerMoveClass { lerp(start, end, time) { return (1-time) * start + time * end; } Rec

所以我对js比较陌生,我试图在我的“recordInputs”类中调用一个方法“lerp”。recordInputs类在其他地方调用,在没有lerp函数的情况下可以正常工作。问题是,当playerImage.x/y等于lerp函数时,出现控制台错误,并表示“lerp”方法未定义

代码如下:

class PlayerMoveClass {

  lerp(start, end, time) {
    return (1-time) * start + time * end;
  }

  RecordInputs(event) {
    currentXPos = playerImage.x;
    currentYPos = playerImage.y;

    xMousePosition = event.clientX;
    yMousePosition = event.clientY;

    playerImage.x = lerp(currentXPos, xMousePosition, 0.1);
    playerImage.y = lerp(currentYPos, yMousePosition, 0.1);
    console.log("X POS: " + playerImage.x + " Y POS: " + playerImage.y);
  }
}

提前感谢任何能提供帮助的人

引用类成员需要使用
this
关键字

就你而言:

playerImage.x = this.lerp(currentXPos, xMousePosition, 0.1);
playerImage.y = this.lerp(currentYPos, yMousePosition, 0.1);

如果使用
RecordInputs
作为事件侦听器(如注释中所建议的),则可能还需要将此构造函数添加到类中,以正确绑定

constructor() {
    this.RecordInputs = this.RecordInputs.bind(this);
}

引用类成员需要使用
this
关键字

就你而言:

playerImage.x = this.lerp(currentXPos, xMousePosition, 0.1);
playerImage.y = this.lerp(currentYPos, yMousePosition, 0.1);

如果使用
RecordInputs
作为事件侦听器(如注释中所建议的),则可能还需要将此构造函数添加到类中,以正确绑定

constructor() {
    this.RecordInputs = this.RecordInputs.bind(this);
}

我猜,
RecordInputs
作为事件侦听器附加在某个地方,在这种情况下,您的代码将无法工作。请提供该代码。您需要将其称为
this.lerp
调用该方法时可能会使用this.lerp()?需要显示如何使用
RecordInputs
。调用上下文在这里很重要,我猜,
RecordInputs
作为事件侦听器附加在某个地方,在这种情况下,您的代码将无法工作。请提供该代码。调用方法时,需要将其引用为
this.lerp
可能使用this.lerp()。需要显示如何使用
RecordInputs
。调用上下文在这里很重要,很可能是基于参数
事件的错误上下文
可能来自dom事件侦听器是的,您是对的,谢谢!Yea还将其用作事件侦听器,添加了构造函数,工作起来很有魅力!基于参数
event
的上下文很可能是错误的,可能来自dom事件侦听器是的,您是对的,谢谢!Yea还将其用作事件侦听器,添加了构造函数,工作起来很有魅力!