es6-箭头函数this指向问题

这个问题困惑了小编很久之前的一个思路不对导致问题一直走向一个错误的方向,现在豁然开朗来跟大家一起分享一下收获

  • 无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,箭头函数同样解决了一些问题,当我们在被函数包裹时就可以采取它然后就可以使用对象自身的方法以及属性值。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值