箭头函数是ECMAScript 6中新增的一种函数定义方式,也被称为Lambda函数。
箭头函数可以更简洁地定义函数,使用箭头(=>)符号来替代传统的function关键字。这种函数定义方式可以使代码更加简洁易读。
箭头函数有以下几种语法形式:
- 基本形式:(parameters) => { function body }
示例:
// 传统函数 function sayHello(name) { console.log('Hello, ' + name + '!'); } // 箭头函数 const sayHello = (name) => { console.log('Hello, ' + name + '!'); }
- 简写形式(如果只有一个参数可以省略括号,如果函数体只有一行可以省略大括号和return关键字): parameter => expression
示例:
// 传统函数 function square(x) { return x * x; } // 箭头函数 const square = x => x * x;
- 使用在对象中时,可以使用简写形式以创建对象方法:
const person = { name: 'John', age: 30, sayHello: function() { console.log('Hello, my name is ' + this.name + '.'); }, sayAge: () => { console.log('I am ' + this.age + ' years old.'); // 此处的this指向的是箭头函数的上下文(global对象或者undefined) } }; person.sayHello(); // Hello, my name is John. person.sayAge(); // I am undefined years old.
需要注意的是,在使用箭头函数时,this
指向的是函数定义时的上下文,而不是函数执行时的上下文,这可能会与传统函数的语法形式有所不同。