JS 中的this指向问题
this: 函数的执行主体, 和执行上下文不是一个概念
- 全局的this是window(浏览器)
- this是谁和函数在哪执行,以及在哪定义都没有必然的联系
按照以下规律来确定执行主体是谁
- 给当前元素的某个事件行为绑定方法,执行对应的方法,方法中的this是当前元素
- 函数执行,首先看函数名之前是否有".",有,"."前面是谁this就是谁,没有"." 非严格模式下this就是window
- 自执行函数中的this一般都是window
- 回调函数中的this一般也都是window
- ...
- 构造函数中的this是当前类的实例
- 箭头函数没有自己的this,用到的this都是上下文中的this
- 基于call/apply/bind可以强制改变this的指向