JavaScript 中的 this

82 阅读1分钟

定义:this是在执行上下文创建时确定的一个在执行过程中不可更改的变量

this 只会在函数调用阶段确定,也就是执行上下文创建的阶段进行赋值,保存在变量对象中。这个特性也导致了 this 的多变性:就是说当函数在不同的调用方式下,都可能导致 this 的值不同。

当函数独立调用的时候,在严格模式下,它的this指向 undefined,在非严格模式下,当this指向undefined的时候,自动指向全局对象(window)。在全局环境中,this 就是指向自己(this === window)

当obj在全局声明的时候,obj内部属性的this指向全局对;当obj在一个函数中声明的时候,严格模式下this会指向undefined,非严格模式自动转为指向全局对象。

在方法中,this表示该方法所属的对象。

图片.png 图片.png

在函数中,严格模式this为undefined,非严格模式为 window

图片.png

作为构造函数调用,所谓构造函数,就是通过这个函数,可以生成一个新对象。这时,this就指向这个新对象。

图片.png

this的指向(非严格模式下)

全局:指向window

普通:指向window

定时:指向 window

构造函数new:指向构造函数实例

箭头:指向器外层作用域的this(指向定义时的this,非执行时的this)

绑定:指向绑定的对象