Es6类this
始终引用创建它的对象,即使在内部函数内部也是如此,因为它var _this = this
,this
的任何引用都将成为_this
}。但是,如果我需要在该类中引用内部函数的上下文,该怎么办?
class Body {
constructor () {
Hooks.subscribe('', () => {
// I want this to reference the context that is within this method
// elsewhere because bind,apply,call sets new context
})
}
}
如何在es6类中引用Hooks.subscribe
的上下文?
答案 0 :(得分:1)
假设你想引用Hooks的this
:
并假设subscribe
函数返回原始hook
对象
你可以这样做:
class Body {
constructor () {
const hook = Hooks.subscribe('', () => {
// `this` will still reference `Body`'s objects this
// `hook` will reference the hook object
});
}
}
答案 1 :(得分:0)
因为您正在使用箭头函数this
保留在父级的范围内。要将其重新分配给当前范围,请删除箭头功能。
class Body {
constructor () {
Hooks.subscribe('', function() {
// `this` is now the context of Hooks.subscribe
});
}
}