根据MDN文档和相关博客,总结了各种情况下的指向。有三个基本规则:
在全球状态下,这一点指向全局对象,浏览器指向窗口,节点结束到globalthis
对象调用函数,函数中的此指向最近称为其对象。该功能前面没有对象被视为全局对象调用功能
使用呼叫,绑定,应用函数称为这是第一个参数
箭头功能没有他自己的功能。他的此继承从外部功能继承,指向创建的此外部功能。该(例如绑定功能等)无法直接更改箭头函数,但是您可以指向箭头函数的间接更改。这会改变外部功能
当函数称为构造函数时,这指向实例化对象。
请记住:这一点指向呼叫功能的对象
AddEventListener添加事件处理功能或内部事件功能。函数的此函数指向绑定事件的函数(this === event.currenttarget始终是正确的)。元素,而不是单击的子元素