假设我在一个对象上有两个方法
Object = {
MethodA() {
console.log('A')
},
MethodB() {
this.MethodA()
}
}
MethodA没有被调用。为什么会这样,我怎样才能更多地了解我做错了什么。ECMA标准中的术语是什么?在哪里解释?
因为this
将由调用该方法的上下文决定,并不总是引用该对象。
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