JavaScript 的 this 指向
- 当
this
出现在事件处理函数中时,它表示触发该事件的元素,也称为事件源。- 当
this
出现在构造函数中时,它表示通过new
关键字创建的新对象。- 当
this
出现在类的方法中时,它表示调用该方法的对象,也就是该方法所属的对象。- 当
this
出现在普通函数中时,它默认指向全局对象(在浏览器中是window
对象),但在严格模式下指向undefined
。- 当
this
出现在嵌套函数(内部函数)中时,默认情况下它仍然是指向全局对象(在浏览器中是window
对象)。- 当
this
出现在通过call
、apply
或bind
方法手动指定函数执行上下文时,它将根据指定的上下文进行绑定。这意味着this
将引用被指定的对象。需要注意的是,对于情况 4 和情况 5,如果使用箭头函数定义函数,则
this
使用词法作用域绑定,即指向包含该箭头函数的外部作用域的this
值。