Javascript 相同 class 中的调用方法未定义?

Javascript calling method in same class comes undefined?

所以我对 js 比较陌生,我正在尝试在我的 'recordInputs' class 中调用一个方法 'lerp'。 recordInputs class 在其他地方被调用并且在没有 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);
  }
}

在此先感谢任何可以提供帮助的人!

引用 class 成员需要使用 this 关键字。

你的情况:

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

如果您使用 RecordInputs 作为事件侦听器(如评论中所建议),您可能还需要将此构造函数添加到 class 以正确绑定 this

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