跳到主要内容

this-closure

this 绑定与闭包

ToC

  • this 绑定规则
  • 显式绑定与箭头函数
  • 闭包与常见坑

this 绑定规则

  • 默认绑定(非严格模式):顶层或普通函数中 this === window/globalThis;严格模式下为 undefined
  • 隐式绑定:作为对象方法调用,obj.m()this === obj
  • 显式绑定:call/apply/bind
  • new 绑定:构造调用时绑定到新创建对象。

显式绑定与箭头函数

  • 箭头函数没有自己的 this,会捕获外层 this;适合回调中保持上下文;
  • 在事件处理/类方法中注意不要滥用箭头函数导致难以测试或内存泄漏。

闭包与常见坑

  • 闭包捕获变量按“引用语义”生效;循环中的异步闭包需使用块级作用域或立即调用函数修复:
for (let i = 0; i < 3; i++) {
setTimeout(() => console.log(i)); // 0,1,2
}