为了账号安全,请及时绑定邮箱和手机立即绑定

es6中箭头函数有无作用域,this指向,能否使用arguments,为什么?

es6中箭头函数有无作用域,this指向,能否使用arguments,为什么?

森栏 2018-10-19 14:11:41
es6中箭头函数有无作用域,this指向,能否使用arguments,为什么?很疑惑为什么不是能使用arguments还有不是所有函数都会有作用域吗那箭头函数应该也有吧
查看完整描述

1 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

上面一位的答案好长,不清楚解决了问题没,我来做个简单的回答好了。

1.箭头函数有作用域(词法作用域),词法作用域简单来讲就是,一切变量(包括this)都根据作用域链来查找。

2.箭头函数中的this因为绑定了词法作用域,所以始终指向自身外的第一个this(由于自身没有声明this,所以会去作用域链上找this),也就是始终等于调用它的函数的this(以为这个this离它最近)。

3.严格模式下不允许使用arguments(规定),并且,普通函数里 arguments 代表了调用时传入的参数,但是箭头函数不是,箭头函数会把 arguments 当成一个普通的变量,顺着作用域链由内而外地查询(词法作用域)

4.arguments可以用...rest取代,所以完全没必要追求argument。

希望能帮到你 0_o


查看完整回答
反对 回复 2018-11-27
  • 1 回答
  • 0 关注
  • 1187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信