this指向

95 阅读1分钟

this作为js语言的一个关键字,表示函数运行时自动生成的一个内部对象,只能在函数内部使用。

情况1:纯粹的函数调用

2022-06-11_124929.png

情况2:作为对象方法调用

把对象中的函数赋值成一个变量了。 这样其实又变成普通函数了,所以使用普通函数的规则(默认绑定)。

2022-06-11_125042.png

情况3:作为构造函数调用

使用new操作符调用函数,会自动执行以下步骤。

2022-06-11_125302.png

情况4:apply/call调用

call 或者 apply( 或者 bind) 调用:严格模式下,绑定到指定的第一个参数。非严格模式下,nullundefined,指向全局对象(全局对指的是window),其余值指向被new Object()包装的对象。

2022-06-11_125509.png

总结:

1.函数在被直接调用的时候,其中的this指针永远指向window

2.匿名函数this总是指向window对象

3.谁执行函数,this就指向谁

4.如果函数通过new创建,则this指向新建出来的对象