事件调用环境
谁触发事件函数里的this就指向谁。
全局环境
浏览器中指向Window。
node环境中指向的是module.exports。
函数内部
- 【this最终指向的是调用它的对象。】
- 直接调用函数,this指向Window。
- 函数被多层对象所包含,this指向它上一级的对象。
- 构造函数中, this指向创建出来的对象。
- 如果构造函数中有return,
返回的不是对象,this还是原来的对象,
如果返回的是对象,则指向返回的对象,
null比较特殊,返回null,this还是指向原来的指向。
箭头函数
[箭头函数()=>]指向的定义时的上一层作用域的this,对象不能形成独立的作用域。
修改this指向
- call(obj,a,b,c)
- apply(obj,[a,b,c])
- bind(obj,a,b,c)()