箭头函式影响this范围

来源:7-6 React事件为何bind this

慕瓜5414566

2021-02-20

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

图片描述

写回答

1回答

双越

2021-02-20

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

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

0
1
慕瓜5414566
谢谢老师答复 关于第一个,这边handleClick里面的this.setState可以指向组件实例 ,所以老师是因为划红线的箭头函数,在 render 函数中定义并执行,并且箭头函数的内的函数的this依照箭头函数向外找,才让handleClick的this可以指向跟render函数一样 第二点, 抱歉没看清楚搞错,那这边改成const handleClcik =箭头函数,则是会因为静态属性方法的关系,this.setState的this也会指向组件实例
2021-02-22
共1条回复

前端框架及项目面试 聚焦Vue3/React/Webpack

面向1-3年前端的框架及项目面试“刚需内容”

4706 学习 · 1669 问题

查看课程