【发布时间】:2016-04-08 10:08:55
【问题描述】:
由于某种原因,我的 es6 课程中“this”的值很奇怪...
'use strict';
class Clicker {
constructor(element) {
this.count = 0;
this.elem = element;
this.elem.addEventListener('click', this.click);
// logs Clicker { count:0, elem: button#thing} as expected
console.log(this);
}
click() {
// logs <button id="thing">...</button> as unexpected...
console.log(this);
this.count++;
}
}
var thing = document.getElementById('thing');
var instance = new Clicker(thing);
<button id="thing">Click me</button>
问题:
为什么 Clickers 的 click 方法中的“this”指的是 dom 节点而不是 ... 本身?
更重要的是,如果我不能使用“this”来执行此操作,我如何从 Clickers 的 click 方法中引用 Clickers 的 count 属性?
【问题讨论】:
标签: javascript class ecmascript-6 this