【译】Learn ES2015——箭头函数

原文:https://babeljs.io/learn-es2015/

理解也许有偏差,欢迎指正

箭头函数

不同于函数,箭头函数和包裹它的代码拥有同一个this。如果一个箭头函数在一个function里,它共享父函数的arguments。

// Expression bodies
var odds = evens.map(v => v + 1);
var nums = evens.map((v, i) => v + i);

// Statement bodies
nums.forEach(v => {
  if (v % 5 === 0)
    fives.push(v);
});

// Lexical this
var bob = {
  _name: "Bob",
  _friends: [],
  printFriends() {
    this._friends.forEach(f =>
      console.log(this._name + " knows " + f));
  }
};

// Lexical arguments
function square() {
  let example = () => {
    let numbers = [];
    for (let number of arguments) {
      numbers.push(number * number);
    }

    return numbers;
  };

  return example();
}

square(2, 4, 7.5, 8, 11.5, 21); // returns: [4, 16, 56.25, 64, 132.25, 441]
原文地址:https://www.cnblogs.com/zqiong/p/6211401.html