箭头函数

语法

(参数1, 参数2, …, 参数N) => { 函数声明 }

var f = (num1, num2) => { 
    return num1*num2 
};
console.log(f(3, 4)); // 12

可以简写成:
(参数1, 参数2, …, 参数N) => 表达式

var f = (num1, num2) => num1*num2;
console.log(f(3, 4)); // 12

当只有一个参数时,圆括号可省略:

(单一参数) => {函数声明}
单一参数 => {函数声明}

var f = num => num*num;
console.log(f(3)); // 9

没有参数的函数写成一对圆括号:

() => {函数声明}

var f = () => 'hello world';
console.log(f()); // hello world
用途

1. 简化函数
2. 不需要绑定 this

简化函数
使用 map 方法一次输出一个数组各元素的长度,使用以下方法:

var materials = [
    'Hydrogen',
    'Helium',
    'Lithium',
    'Beryllium'
  ];

var f = materials.map(function(material) { 
    return material.length; 
  }); 

console.log(f) // [8, 6, 7, 9]

使用箭头函数简化:

var f = materials.map(material => {
    return material.length; 
});

console.log(f) // [8, 6, 7, 9]

进一步简化:

var f = materials.map(material =>  material.length);
    
console.log(f) // [8, 6, 7, 9]

不绑定 this
在 ECMAScript 3/5中,通过将 this 值分配给封闭的变量,可以解决 this 问题。

function Person() {
    this.age = 0;
  
    var self = this;
    setInterval(function growUp() {
      self.age++;
      console.log(self.age);
    }, 1000);
  }

var p = new Person();

使用箭头函数则不用绑定 this:

function Person() {
    this.age = 0;
  
    // var self = this;
    setInterval(() => {
      this.age++;
      console.log(this.age);
    }, 1000);
  }

var p = new Person();

摘自:箭头函数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容