【问题标题】:Using a member variable declared in the constructor in another function in the same class in Javascript [duplicate]在Javascript的同一类中的另一个函数中使用构造函数中声明的成员变量[重复]
【发布时间】:2017-06-09 03:39:17
【问题描述】:

我通过说RunConfigurationController controller = new RunConfigurationController() 在另一个文件中实例化这个类。

在构造函数中,我创建了一个新的 RunConfigurationView,然后设置了 onclick 功能。然后当我运行程序并执行取消按钮单击时,我收到一条错误消息,说我无法访问Uncaught TypeError: Cannot read property 'getRunConfigurationModal' of undefined

如何从同一个类中的另一个方法访问我在构造函数中创建的“this”变量。

'use babel';

import RunConfigurationView from './run-configuration-view'

export default class RunConfigurationController {

  constructor() {
    this.runConfigurationView = new RunConfigurationView();
    this.runConfigurationView.getUpdateButton().onclick = this.updateButtonClick;
    this.runConfigurationView.getCancelButton().onclick = this.cancelButtonClick;

  }

  updateButtonClick() {

  }

  cancelButtonClick() {
    this.runConfigurationView.getRunConfigurationModal().remove();
  }

  getRunConfigurationView() {
    return this.runConfigurationView;
  }

}

【问题讨论】:

  • tl;博士:.onclick = () => this.updateButtonClick()
  • 非常感谢@Ryan!

标签: javascript ecmascript-6 es6-class


【解决方案1】:

这是你的绑定...在你的构造函数中调整这两行

this.runConfigurationView.getUpdateButton().onclick = this.updateButtonClick.bind(this);
this.runConfigurationView.getCancelButton().onclick = this.cancelButtonClick.bind(this);

请参阅herehere 了解更多信息

【讨论】:

    猜你喜欢
    • 2022-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多