React的组件中不用bind(this),全部用箭头函数,这样会有什么缺点吗?
建议使用箭头函数,这样可以避免 this 指向带来的隐藏问题,2楼说的 “箭头函数的优点就是可以自动绑定上下文中的this” 这 句是不对的,不是自己绑定,是 箭头里面根本就没有 自动去 改变 this, 也就是箭头函数里面没有 this, 自然的箭头函数里面的 this就是它上一级的。
1 回答1.7k 阅读✓ 已解决
4 回答1.7k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答1.6k 阅读✓ 已解决
4 回答1.4k 阅读
1 回答1.6k 阅读✓ 已解决
箭头函数的优点就是可以自动绑定上下文中的箭头函数的优点是不会创建自己的this
this
,它只会从自己的作用域链的上一层继承this
.当然这也有可能是缺点,比如在你需要改变this
的时候,这个时候就需要改成普通函数了.我遇到的另外一种情况是需要使用装饰器的情况,普通的函数使用装饰器直接覆盖
descriptor.value
就好了.但是如果装饰在箭头函数上面的话descriptor.value
为空,需要通过别的方法来操作,有点麻烦,最后我直接改成普通函数,在最外面加了层绑定this
的装饰器解决的.其实也没多少好纠结的,只要你明白什么情况下不能用,其他情况下就大胆用.当你什么时候遇到问题了,就在心中记一笔,这种情况不能用就好了.跟结束加不加分号一个道理.用多了之后能遇到的情况基本上都遇到了,至于没遇到的情况,等遇到在说呗.
箭头函数表达式