第一:全局作用域中的this
在全局作用域中,this指向window对象
第二种:函数调用中的this
当一个函数不是一个对象的属性时,直接作为函数来调用时,函数不是箭头函数时,正常模式下,this 指向全局对象,严格模式下,this为undefined,函数为箭头函数时,绑定的是父作用域的this指向
第三种:方法调用中的this
如果一个函数作为一个对象的方法来调用时,this 指向这个对象,箭头函数除外
第四种:构造函数中的this
如果一个函数用 new 调用时,this 指向这个新创建的对象。
第五种: apply 、 call 和 bind 调用中的this
apply和call改变的是函数运行时的this指向,bind返回一个 this 绑定了传入对象的新函数。这个函数的 this 指向可以使用 new 时会被改变。箭头函数中的this不能通过apply、call和bind进行改变。
第六:事件处理函数中的this
在事件处理函数中,this指向触发事件的目标对象。