具有两个方法的对象.方法A、方法B从方法A内部调用方法B



假设我在一个对象上有两个方法

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

相关内容

  • 没有找到相关文章

最新更新