如何确定JavaScript中this的指向?这里有5中常见的分类

this的指向是在函数调用的时候确定下来的,this的指向大致可以分为五种.

1. 默认绑定

默认绑定一般发生在回调函数,函数直接调用;

 

2. 隐式绑定

谁调用就是指向谁;

 

3. 显示绑定call,ly,bind

 

4. new绑定

 

5. ES6的箭头函数

箭头函数比较特殊,箭头函数this为父作用域的this,不是调用时的this.要知道前四种方式都是调用时确定,也就是动态的,而箭头函数的this指向是静态的,声明的时候就确定了下来.比较符合js的词法作用域.

 

既然有5种this的绑定方式,那么肯定有优先级的先后

箭头函数 -> new绑定 -> 显示绑定call/bind/apply -> 隐式绑定 -> 默认绑定

胜象大百科