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

查看:142
本文介绍了javascript - es6中箭头函数有无作用域,this指向,能否使用arguments,为什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

很疑惑为什么不是能使用arguments
还有不是所有函数都会有作用域吗
那箭头函数应该也有吧

解决方案

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

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

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

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

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

希望能帮到你 0_o

这篇关于javascript - es6中箭头函数有无作用域,this指向,能否使用arguments,为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆