"Esto" dentro del método de clase es6 [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Cómo acceder al correcto 'this' dentro de una devolución de llamada? 10 respuestas

Por alguna razón, obtengo valores extraños para "esto" en mi clase 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>

Pregunta:

¿Por qué el "esto" dentro del método de clic de los Clickers se refiere al nodo dom en lugar de ... en sí mismo?

Más importante aún, ¿cómo me refiero a la propiedad de conteo de Clickers desde su método 'click' si no puedo usar "esto" para hacerlo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta