因此,我对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用作事件侦听器(如注释中所建议),则可能还需要将此构造函数添加到类中以正确绑定this

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

关于javascript - 同一类中的JavaScript调用方法未定义?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53305090/

10-13 02:59