在全局环境下,this 始终指向全局对象(window), 无论是否严格模式
函数直接调用
普通函数内部的this分两种情况,严格模式和非严格模式。
非严格模式下,this 默认指向全局对象window
而严格模式下, this为undefined
对象中的this
对象内部方法的this指向调用这些方法的对象,
函数的定义位置不影响其this指向,this指向只和调用函数的对象有关。
多层嵌套的对象,内部方法的this指向离被调用函数最近的对象(window也是对象,其内部对象调用方法的this指向内部对象, 而非window)
原型链中this
原型链中的方法的this仍然指向调用它的对象
构造函数中this
构造函数中的this与被创建的新对象绑定。
注意:当构造器返回的默认值是一个this引用的对象时,可以手动设置返回其他的对象,如果返回值不是一个对象,返回this。
作为方法的箭头函数this指向全局window对象