ES6 - 箭头函数

优质
小牛编辑
125浏览
2023-12-01

新的“胖箭头”符号还可以用更简单的方式来定义匿名函数。

请看下面的例子:

  1. console.log(x);
  2. incrementedItems.push(x+1);
  3. });

计算一个表达式并返回值的函数可以被定义更简单:

下面代码与上面几乎等价:

  1. incrementedItems = items.map(function (x) {
  2. return x+1;

让我们在 验证这段代码。不出所料,报错了,因为this 在匿名函数中的值是 undefined。

现在,让我们改变使用箭头函数的方式:

  1. constructor(toppings) {
  2. this.toppings = Array.isArray(toppings) ? toppings : [];
  3. }
  4. outputList() {
  5. this.toppings
  6. .forEach((topping, i) => console
  7. }
  8. }
  9. var ctrl = new Toppings(['cheese', 'lettuce']);

注意 箭头函数没有 arguments 对象 , 这会给开发者带来混乱. supernew.target 同样来自外部作用域。

  • 箭头函数就是个简写形式的函数表达式;
  • 它拥有词法作用域的this值(即不会新产生自己作用域下的this, arguments, super 和 new.target 等对象);