Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 事件处理程序报告在类中使用时未定义的元素_Javascript_Dom Events - Fatal编程技术网

Javascript 事件处理程序报告在类中使用时未定义的元素

Javascript 事件处理程序报告在类中使用时未定义的元素,javascript,dom-events,Javascript,Dom Events,我使用JavaScript事件处理程序编写了这个简单的工作代码 var testElement=document.getElementById('test'); testElement.addEventListener('click',updateValue); 函数updateValue(){ testElement.innerHTML='test'; } 单击我您正在将更新值函数作为参数传递,当调用更新值函数时,此关键字并不引用您认为的MyClass实例。你需要能够通过推荐 您可以使用ES

我使用JavaScript事件处理程序编写了这个简单的工作代码

var testElement=document.getElementById('test');
testElement.addEventListener('click',updateValue);
函数updateValue(){
testElement.innerHTML='test';
}

单击我
您正在将
更新值
函数作为参数传递,当调用
更新值
函数时,
关键字并不引用您认为的
MyClass
实例。你需要能够通过推荐

您可以使用ES6中的箭头函数处理此问题:

class MyClass {
  constructor() {
    this.testElement = document.getElementById('test');
    this.testElement.addEventListener('click',
      e => this.updateValue()
    );
  }

  updateValue() {
    this.testElement.innerHTML = 'test';
  }
}

  var myClass = new MyClass();