Digamos que tengo dos métodos en un Objeto.
Object = { MethodA() { console.log('A') }, MethodB() { this.MethodA() } }El MethodA no se llama. ¿Por qué es esto y cómo puedo aprender más sobre lo que estoy haciendo mal? ¿Cómo se llama la terminología y dónde se explica esto en el estándar ECMA?
Porque this estará determinado por el contexto en el que se llama al método y no siempre se referirá al objeto.
const object = { MethodA() { console.log('this in A: ', this === window ? 'window' : this) }, MethodB() { console.log('this in B: ', this === window ? 'window' : this) object.MethodA() } } object.MethodB() // this in B === object const b = object.MethodB; b() // this in B === window