箭头函数不绑定自己的this,而是静态继承外层第一个非箭头函数作用域的this值;其this在定义时即确定,不可被call/apply/bind修改,也不能作为构造函数,适用于回调中保持上下文。

箭头函数不绑定自己的 this,而是继承外层第一个普通函数(非箭头函数)作用域中的 this 值。
箭头函数的 this 是静态捕获的
它在定义时就确定了 this 的值,之后无论怎么调用(如作为回调、赋值给变量、用 call/apply),都不会改变。
- 如果外层没有普通函数,而是全局作用域,则
this指向全局对象(浏览器中是window,严格模式下是undefined) - 如果外层是普通函数,箭头函数内的
this就等于该普通函数执行时的this - 嵌套多层箭头函数时,它们共享同一个外层普通函数的
this,不会逐层向上找
和普通函数 this 的关键区别
普通函数的 this 取决于**调用方式**(如 obj.fn() 中 this 是 obj),而箭头函数的 this 取决于**定义位置**。
- 不能用
call、apply、bind改变箭头函数的this - 不能作为构造函数使用(会报错)
- 没有
arguments对象(需用剩余参数...args)
常见使用场景举例
最典型的是在事件处理、定时器、Promise 回调中避免 this 丢失:
- 对象方法内定义箭头函数:确保内部函数能访问对象属性
- React 类组件中,用箭头函数写事件处理器,避免手动
bind(this) - 异步操作(如
setTimeout或fetch后的then)中保持上下文
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











