Вызов метода Javascript в том же классе не определен? - PullRequest
0 голосов
/ 14 ноября 2018

Так что я относительно новичок в js и пытаюсь вызвать метод 'lerp' внутри моего класса 'recordInputs'.Класс 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);
  }
}

Заранее спасибо всем, кто может помочь!

1 Ответ

0 голосов
/ 14 ноября 2018

Ссылка на членов класса требует использования ключевого слова 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);
}
...