es6的箭头函数和es5的function函数区别

一.es6的箭头函数
es6箭头函数内部没有this,使用时会上朔寻找最近的this
不可以做构造函数,不能使用new命令,因为没有this
函数体内没有arguments,可以使用rest参数代替
不能用yield,不能使用generator函数
二.疑问
下面代码中的箭头函数arrows的this指向window

let obj = {
  aaa: '123',
  arrows : () => {
    console.log('arrows',this);
  },
  func : function () {
    console.log('func',this);
  }
}

obj.arrows(); // window
obj.func(); // obj

结合实例就是这样 

var obj={

  1.  
    a :()=>{
    1.  
        console.log(this)
  2.  
    },
  3.  
    b:function () {
    1.  
        console.log(this)
  4.  
    }.bind(this)
  5.  
    }
  6.  
    obj.a()//obj.a
  7.  
    obj.b()//obj.b
  8.  
    复制代码

当当当当,这下就很舒服了,对于一个不怎么喜欢看文字的人来说,辛苦地背那些内容,不如用代码说话简单,至于为什么不加bind(this)的时候,this会指向obj;

posted @ 2020-03-20 23:14  努力~努力再努力~  阅读(755)  评论(0编辑  收藏  举报