this.handleMouseMove = this.handleMouseMove.bind(this);
上面这一句怎么理解?handleMouseMove不是本来就在这个组件上吗?不是借用其他组件的,为什么还要在构造函数中重新绑定this。一直没有看明白,请高人指点
this.handleMouseMove = this.handleMouseMove.bind(this);
上面这一句怎么理解?handleMouseMove不是本来就在这个组件上吗?不是借用其他组件的,为什么还要在构造函数中重新绑定this。一直没有看明白,请高人指点
这是js中 this
指向问题,可以参考这个: https://developer.mozilla.org...
this.handleMouseMove.bind(this)
是给 handleMouseMove
绑定上下文的,可以将这行代码删掉,再运行看看效果。对比一下就理解了。
因为 handleMouseMove
不是在MouseTrack
实例里调用的, 不加bind(this)
的话, 被调用时它里面的this
就不是MouseTrack
实例里
你试下去掉bind(this)
, 然后再handleMouseMove
打印下this
就知道了
8 回答4.6k 阅读✓ 已解决
6 回答3.3k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
6 回答2.2k 阅读
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
4 回答2.7k 阅读✓ 已解决
其实你可以先尝试一下,就不bind,看看执行效果是什么样的。然后思考一下为什么。
不过最终还是要回归到文档,毕竟这个人家还是挺细致的描述了原因,已经推荐的方式。可能这是个细节,不过也提示你需要更加仔细的查看文档了。
https://reactjs.org/docs/hand...