¿Por qué este punto dentro de array.forEach como objeto de ventana? Entiendo que esto se debe a que es una función de devolución de llamada. Si es así, en el caso de los controladores de eventos, también cuando pasamos la función del controlador como una función de devolución de llamada, deberíamos obtener esta ventana, pero obtenemos el objeto (es decir, un elemento HTML). ¿Cómo son ambos diferentes?
En el siguiente ejemplo, tengo un método de matriz que recibe una devolución de llamada.
var videoPlayer = { title: 'Main player', tags: ['a', 'b', 'c'], getTags() { this.tags.forEach(function(item) { console.log(this) //window object }) } } videoPlayer.getTags()PD: Entiendo la solución y pasar esto como un segundo parámetro en forEach. Pero me interesa saber el funcionamiento de esta palabra clave.