繁体   English   中英

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

Javascript calling method in same class comes undefined?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

所以我对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);
  }
}

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

1 个回复

引用类成员需要使用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);
}
1 链接错误:同一类中的未定义引用

我在g ++ 4.9中遇到以下错误: 这是头文件: base.cpp文件如下: 即使我包含了base.h文件,我仍然得到未定义的引用错误,而且我不明白为什么会这样。 我究竟做错了什么? 谢谢 ...

2 PHP:调用同一类(文件)中的未定义函数错误

我正在使用SQL的一个项目。 现在,我做了一个检查数据库的函数( check_database($ post) )。 这个函数应该能够在任何其他函数被调用。 我的另一个函数( authenticate($ post) )在同一类中调用此函数。 当我尝试的PHP文件的时候,我得到以下错误: ...

5 从同一类中的方法调用方法

我有一个Platformer类,该类创建一个窗口并生成平台和一个“ character”。 它使用另一个类平台来制作平台。 该角色应该跳起来并降落在平台上。 我使用getBounds和getTopY函数进行碰撞检测,但它们仅适用于第一个平台。 我如何才能使它们在多个平台上工作? ...

8 从同一类中的结构调用方法

我想在逻辑上组织类属性,以表示它们是一个逻辑单元,并将它们与关系不太紧密的其他类属性区分开。 我想到了在课堂上使用结构来做到这一点。 但是,似乎无法从struct属性设置器调用类方法。 我收到似乎是不合适的编译错误:“在调用中缺少参数#1的参数” 这似乎与快速调用struct中的 ...

9 同一类中的方法调用

长时间的搜索者,但是第一次发布问题。 我是一名IT专业学生,正在(还没有开始)我的第二门编程课。 首先只是Java的介绍(我们实际上是在谈论基础知识)。 在同一个类中调用方法一直很麻烦。 我尝试了搜索foo,但效果不佳。 弹出了几篇文章,但它们并没有完全涵盖我要寻找的内容。 包括一个 ...

2014-03-04 02:17:02 3 46   java
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM