"Isso" no método da classe es6 [duplicado]

Esta pergunta já tem uma resposta aqui:

Como acessar o `this` correto dentro de um retorno de chamada? 10 respostas

Por alguma razão, estou obtendo valores estranhos para "this" na minha classe es6 ...

'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>

Pergunta, questão:

Por que o "this" dentro do método click do Clickers se refere ao nó dom, e não a si próprio?

Mais importante, como faço para me referir à propriedade count dos Clickers no método 'click' se não consigo usar "this" para fazer isso?

questionAnswers(1)

yourAnswerToTheQuestion