方法不知道类字段

时间:2017-10-30 15:00:11

标签: javascript class onclick

我的代码中存在严重问题。我有一个建筑物,其水平可以通过点击按钮增加水平"改善"。该按钮在构造函数中创建。当我用按钮调用该函数时,我收到一条错误消息,告诉我" this.price"未定义。如果我通过在代码中写入函数来调用此函数,那么" this.price"众所周知。我该如何解决这个问题?



{{1}}




2 个答案:

答案 0 :(得分:2)

问题

您的功能improve 与该课程在同一范围内。

在JavaScript中,函数是对象," this"的值。取决于函数的调用方式。 关于JavaScript this与Java this的关联a related question

您可以详细了解JavaScript this here

解决方案

我建议您将this绑定到improve,如下所示:

this.improve = this.improve.bind(this);

bind(param)通过在调用时创建this设置为param的新函数来工作。您可以阅读更多相关信息here

答案 1 :(得分:1)

在构造函数中添加以下行:this.improve = this.improve.bind(this);。由于范围界定,这种情况正在发生。 this方法内的点击事件improve包含this类的实际点击事件Building