假设我在一个对象上有两个方法。
Object = {
MethodA() {
console.log('A')
},
MethodB() {
this.MethodA()
}
}不会调用MethodA。为什么会这样?我如何才能更多地了解我做错了什么?这个术语叫什么?在ECMA标准中有什么解释?
发布于 2021-09-22 14:14:12
因为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
https://stackoverflow.com/questions/69285625
复制相似问题