en el fragmento de código a continuación:
en el 1er caso con función de flecha - objeto registrado
en el segundo caso con declaración de función - ventana registrada
¿Cómo y por qué la función de flecha preserva el contexto?
// 1ST CASE function A() { this.getThis = () => { console.log(this) } } const a = new A const aa = a.getThis /* same as: const aa = () => { console.log(this) } */ aa() // object, context preserved O_o // 2ND CASE function B() { this.getThis = function() { console.log(this) } } const b = new B // b.getThis() // will log object const bb = b.getThis /* same as: const bb = function() { console.log(this) } */ bb() // window