您的当前位置:首页es6箭头函数

es6箭头函数

2024-12-13 来源:哗拓教育

基本用法

()=>{}

箭头函数的优点

1.箭头函数使表达更简洁

如果只有一条语句,一行就可以表达

const isEven = n => n % 2 == 0;
const square = n => n * n;

2.箭头函数的this的作用域是定义时所在的对象

这是由于箭头函数本身没有自己的this,所以导致内部的this就是外层函数的this。

箭头函数的这个特性适合用来很有利于封装回调函数。

let handler = {
  id: '123456',

  init: function() {
    document.addEventListener('click',
      event => this.doSomething(event.type), false);
  },

  doSomething: function(type) {
    console.log('Handling ' + type  + ' for ' + this.id);
  }
};

上面这个例子,箭头函数使this可以指向handler,所以就可以使用handler的一些方法。

3. 箭头函数还有一个功能,就是可以很方便地改写 λ 演算

// λ演算的写法
fix = λf.(λx.f(λv.x(x)(v)))(λx.f(λv.x(x)(v)))

// ES6的写法
var fix = f => (x => f(v => x(x)(v)))
               (x => f(v => x(x)(v)));

由于λ 演算对于计算机科学非常重要,这使得我们可以用 ES6 作为替代工具,探索计算机科学。

使用箭头函数的注意点

  1. 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
  2. 不可以当作构造函数,不可以使用new命令,否则会抛出一个错误。
  3. 不可以使用arguments对象,该对象在函数体内不存在。可以用rest参数代替。
  4. 不可以使用yield命令,因此箭头函数不能用作Generator函数。
  5. 不可以使用call、apply来绑定this,因为箭头函数没有自己的this
显示全文