this绑定

时间:2024-10-25 18:05:56

js中关于this的用法,在初期时候经常会弄混,即使现在,也不敢说就一定不会混,但是起码好很多了。

函数执行过程中,主要有4种方法决定this的绑定对象。

分别为:默认绑定、隐式绑定、 显示绑定和new绑定。

1、默认绑定: 独立函数调用。

  即直接使用不带任何修饰的函数引用进行调用的,只能使用默认绑定。

this绑定

2、隐式绑定:调用位置是否有上下文对象,或者说是否被某个对象拥有或者包含。

 this绑定

  在一些情况下,被隐式绑定的函数会丢失绑定对象,也就是说他会应用默认绑定,从而把this绑定到全局对象或者undefined上,取决于是否是严格模式。

this绑定

3、显示绑定:通过JavaScript内置的call()或者apply(),在一定程度上也可以ES5的bind()也可以当做显示绑定的方法,但是其与前面二者稍有区别,不细说。但是其也不能直接解决绑定丢失的问题。

this绑定

4、new绑定: 最常用的构造函数中常见的this

this绑定

四者优先级,new绑定优先于显示绑定 优先于 隐式绑定 优先于 默认绑定。