1.全局环境下
this始终指向window
2.函数上下文调用
a. 函数直接调用:严格模式(window),非严格模式(undefined)
b.对象中的this
对象内部方法的this指向调用这些方法的对象(前面是谁则指的谁)
函数的定义位置不影响this指向,this指向只和调用函数的对象有关
多层嵌套,指向最近的对象
3.this指向利用call或apply所指派给this的物件
例如:A.函数.call(B,参数1,参数2...)//指向B
A.函数.apply(B,参数1,参数2...)//指向B
4.this指向new所产生的新对象
5.setTimeout & setInterval
对于延时函数内部的回调函数 this,指向window
6.可通过bind绑定this,返回的是一个绑定之后的函数,bind函数的第一个参数为目标this,其余为普通参数
只有第一次bind有效,已绑定this的函数再使用一次bind,this不变
7. 箭头函数中的this
箭头函数不绑定this,捕获上下文的this,作为自己的this.call/apply/bind对箭头函数的this无影响,只做传参。