关于this指向问题

121 阅读1分钟

JS 中的this指向问题

this: 函数的执行主体, 和执行上下文不是一个概念

  • 全局的this是window(浏览器)
  • this是谁和函数在哪执行,以及在哪定义都没有必然的联系

按照以下规律来确定执行主体是谁

  1. 给当前元素的某个事件行为绑定方法,执行对应的方法,方法中的this是当前元素
  2. 函数执行,首先看函数名之前是否有".",有,"."前面是谁this就是谁,没有"." 非严格模式下this就是window
  • 自执行函数中的this一般都是window
  • 回调函数中的this一般也都是window
  • ...
  1. 构造函数中的this是当前类的实例
  2. 箭头函数没有自己的this,用到的this都是上下文中的this
  3. 基于call/apply/bind可以强制改变this的指向