this 关键字是一个非常重要的语法点。如果不理解它的含义,大部分开发任务都无法完成。 但在任何情况下,this 都有一个共同点:它总是返回一个对象。
简单来说关于 this 的指向,谁调用它,this 就指向谁
具体来说,关于this的指向规律有以下几条:
1.在函数体中,非显式或隐式地简单调用函数时,在严格模式下,函数内的 this 会被绑定到 undefined 上,在非严格模式下则会被绑定到全局对象 window/global 上。
2.一般使用 new 方法调用构造函数时,构造函数内的 this 会被绑定到新创建的对象上。
3.一般通过 call/apply/bind 方法显式调用函数时,函数体内的 this 会被绑定到指定参数的对象上
4.一般通过上下文对象调用函数时,函数体内的 this 会被绑定到该对象上。
5.在箭头函数中,this 的指向是由外层(函数或全局)作用域来决定的。