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