JS中箭头函数的this指向机制如何详细解析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计864个文字,预计阅读时间需要4分钟。
箭头函数是ES6新增的特性,它没有自己的this,其this指向从外层代码库继承而来。使用箭头函数时需要注意以下几点:箭头函数不能用作构造函数,否则会抛出错误;无法使用arguments对象。
箭头函数是ES6中的新增特性,他没有自己的this,其this指向从外层代码库继承。
使用箭头函数时要注意一下几点:
- 箭头函数不能用作构造函数,用的话会抛出一个错误
- 无法使用arguments参数,如果要用的话就用rest
- 无法使用yield命令,所以箭头函数无法用作Generator函数
- 因为没有自己的this,所以没法通过bind、call、apply来改变this指向
- 但是这不代表箭头函数的this指向是静态的,我们可以通过改变它外层代码库的this指向来控制
- 箭头函数的this从外层代码库继承,所以箭头函数的this是在定义的时候就绑定好了的,而普通函数是在调用的时候确定this指向
- 字面量对象中直接定义的箭头函数的this不绑定该对象,而是往外找一层,最简单的情况是绑定到window
PS: 实际开发环境中,React可以使用箭头函数解决一个经典问题,这里不细说了。
本文共计864个文字,预计阅读时间需要4分钟。
箭头函数是ES6新增的特性,它没有自己的this,其this指向从外层代码库继承而来。使用箭头函数时需要注意以下几点:箭头函数不能用作构造函数,否则会抛出错误;无法使用arguments对象。
箭头函数是ES6中的新增特性,他没有自己的this,其this指向从外层代码库继承。
使用箭头函数时要注意一下几点:
- 箭头函数不能用作构造函数,用的话会抛出一个错误
- 无法使用arguments参数,如果要用的话就用rest
- 无法使用yield命令,所以箭头函数无法用作Generator函数
- 因为没有自己的this,所以没法通过bind、call、apply来改变this指向
- 但是这不代表箭头函数的this指向是静态的,我们可以通过改变它外层代码库的this指向来控制
- 箭头函数的this从外层代码库继承,所以箭头函数的this是在定义的时候就绑定好了的,而普通函数是在调用的时候确定this指向
- 字面量对象中直接定义的箭头函数的this不绑定该对象,而是往外找一层,最简单的情况是绑定到window
PS: 实际开发环境中,React可以使用箭头函数解决一个经典问题,这里不细说了。

