Say I have two methods on an Object.
Object = {
MethodA() {
console.log('A')
},
MethodB() {
this.MethodA()
}
}
The MethodA doesn't get called. why is this and how can I learn more about what I am doing wrong. What is the terminology called and where is this explained in the ECMA standard?
Because this will be determined by the context in which the method is called and will not always refer to the object.
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