箭头函数this指向问题

这个问题困惑了小编好久以前的一个思路不对致使问题一直走向一个错误的方向,如今豁然开朗来跟你们一块儿分享一下收获javascript

  • 无this绑定 箭头函数准确来说是没有this绑定的,在使用时它的this是继承下来的,关于箭头函数的this指向咱们首先不要走进的误区就是做用域链,既然他自身都没有this那怎么会根据做用域链来找this指向呢?
  • 案例分析 箭头函数中this指向只有两种状况:
  1. 没有被函数包裹,那么它里面的this就指向就是全局,window上面的对象
var a = 'I am windows';
   let obj = {
       a: 'I am objs',
       fun: () => {
           console.log(this.a);
       }
   }
   obj.fun(); // 输出I am windows
复制代码
  1. 被函数包裹就是与同级定义
var a = 'I am windows';
     let obj = {
         a: 'I am objs',
         fun(){
           (() => {
               console.log(this.a);
           })()  // 这边就不弄其余包裹了就用当即执行函数最明了
         }
     }
   obj.fun();  // I am objs
复制代码

像上面的当即执行函数若是是function的话就输出为全局a,箭头函数一样解决了一些问题,当咱们在被函数包裹时就能够采起它而后就可使用对象自身的方法以及属性值。java

相关文章
相关标签/搜索