定义:this是在执行上下文创建时确定的一个在执行过程中不可更改的变量
this 只会在函数调用阶段确定,也就是执行上下文创建的阶段进行赋值,保存在变量对象中。这个特性也导致了 this 的多变性:就是说当函数在不同的调用方式下,都可能导致 this 的值不同。
当函数独立调用的时候,在严格模式下,它的this指向 undefined,在非严格模式下,当this指向undefined的时候,自动指向全局对象(window)。在全局环境中,this 就是指向自己(this === window)
当obj在全局声明的时候,obj内部属性的this指向全局对;当obj在一个函数中声明的时候,严格模式下this会指向undefined,非严格模式自动转为指向全局对象。
在方法中,this表示该方法所属的对象。
在函数中,严格模式this为undefined,非严格模式为 window
作为构造函数调用,所谓构造函数,就是通过这个函数,可以生成一个新对象。这时,this就指向这个新对象。
this的指向(非严格模式下)
全局:指向window
普通:指向window
定时:指向 window
构造函数new:指向构造函数实例
箭头:指向器外层作用域的this(指向定义时的this,非执行时的this)
绑定:指向绑定的对象