请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

箭头函式影响this范围

老师有个地方似懂非懂
关于像官网这块例子(使用箭头函式handleClick里的this就可以指向当前实例)
点的当下执行,除了()=>this.handClick(letter)的this可以指向实例,为何handClcik实例方法里面this也会是实例,是单纯因为箭头函式没有自己的this,执行当下里面的任何内层函式this都可以指向外层的实例这样吗

图片描述

正在回答 回答被采纳积分+3

1回答

双越 2021-02-20 22:04:12

第一,你划红线的箭头函数,是在 render 函数中定义并在这里使用的,this 自然就找 render 函数的 this ,即组件实例;

第二,handleClick 不是箭头函数,就普通函数,只不过是 class 方法的最新写法而已。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕瓜5414566 #1
    谢谢老师答复
    关于第一个,这边handleClick里面的this.setState可以指向组件实例
    ,所以老师是因为划红线的箭头函数,在 render 函数中定义并执行,并且箭头函数的内的函数的this依照箭头函数向外找,才让handleClick的this可以指向跟render函数一样
    
    第二点, 抱歉没看清楚搞错,那这边改成const handleClcik =箭头函数,则是会因为静态属性方法的关系,this.setState的this也会指向组件实例
    回复 有任何疑惑可以回复我~ 2021-02-22 16:41:39
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信