箭头函数是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
指向的是函数定义时的上下文,而不是函数执行时的上下文,这可能会与传统函数的语法形式有所不同。