箭头函数的使用和this指向

 我来答
大沈他次苹0B
2022-06-07 · TA获得超过7335个赞
知道大有可为答主
回答量:3059
采纳率:100%
帮助的人:179万
展开全部

(param1, param2, …, paramN) => { statements }
(param1, param2, …, paramN) => expression
//相当于:(param1, param2, …, paramN) =>{ return expression; }

// 当只有一个参数时,圆括号是可选的:
(singleParam) => { statements }
singleParam => { statements }

// 没有参数的函数应该写成一对圆括号。
() => { statements }

arr = [20,1,34,2],使用函数实现数组中的每项数据都乘2的操作,最后得到
arr = [40.2.68.4]

1.(param1) => {}

2.param1 => {} 只有一个参数时,可以省略圆括号

3.param1 => …… 当方法体内只有一个return语句时,可以省略方法体的花括号和return关键字

箭头函数没有自己的this,那他的this去哪里找?
箭头函数会继承自作用域链中上一层的this,也就是箭头函数会顺着他的作用域链,一层一层往上找,知道找到有this为止。
setTimeout().call(window),所以setTimeout中的this被call改变成window

第一个setTimeout被call改变this指向,this指向window
第二个setTimeout的箭头函数没有单独的this,向上寻找,找到上一层setTimeout的this,指向window
第三个同第一个一样指向window
第四个同第二个一样,只是第四个的上一层是箭头函数,箭头函数没有this,继续向上一层找,找到aaa()的this,aaa()由obj调用,this指向obj

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式