我可能不理解react组件类中的=>
。 handler
在下面的代码中打印true
。
class X extends Component {
handler = () => {console.log(this instanceof X)}
render() {
return <a onClick={this.handler}>xxx</a>
}
}
但我无法在下面的代码中混合handler
。 handler
始终返回false
。我想知道如何在this
中绑定Object.assign
,因此它也可以返回true
。感谢。
class X extends Component {
render() {
return <a onClick={this.handler}>xxx</a>
}
}
Object.assign(X.prototype, {
handler: () => {console.log(this instanceof X)}
})
答案 0 :(得分:0)
箭头函数并不适用于任何地方,例如构造函数,它只能是函数!
箭头函数最常见的用例是“lambdas”,它不会重新定义它,通常用作某些函数的回调。
在你的第一个例子中,你的箭头函数将绑定你的上下文,这是你的类引用,所以这个实例X是真的:
Object.assign(X.prototype, {
handler: () => {console.log(this instanceof X)}
})
在这里你试图做同样的事情,但这不再是你的班级,但在这里你的上下文将是窗口或其他东西..