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

Posted xzybk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

以上是关于es6的箭头函数和es5的function函数区别的主要内容,如果未能解决你的问题,请参考以下文章

ES6新特性箭头函数语法以及与ES5普通函数的不同

es6 箭头函数

es6 箭头函数和function的区别

ES6- 箭头函数的使用

es5~es6

es6和es5中的this指向