跳转到内容
新建笔记

JavaScript 箭头函数

ES6标准新增了一种新的函数:箭头函数(Arrow Function)。

x => x * x
// 上面的箭头函数相当于:
function (x) {
return x * x;
}
用法分类说明代码示例
基本语法使用箭头=>定义函数,当函数体只有一条语句时,可以省略{}和return。let square = x => x * x;
多表达式当函数体有多条语句时,需要使用{}包裹,并且需要显式使用return返回值。let getSign = x => { if (x > 0) return '正数'; return '非正数'; };
多参数当箭头函数接受多个参数时,需要使用圆括号()包裹参数列表。let sum = (x, y) => x + y;
无参数当箭头函数不接受任何参数时,需要使用一对空的圆括号()。let sayHello = () => console.log('Hello!');
可变参数使用ES6的rest参数语法,可以接受任意数量的参数。let sumAll = (...nums) => nums.reduce((acc, num) => acc + num, 0);
对象字面量当要返回一个对象字面量时,需要使用括号()包裹返回的对象,以避免语法错误。let getPerson = id => ({ id, name: 'John Doe' });
this 词法作用域箭头函数没有自己的this,它会捕获其所在上下文的this值,作为自己的this。let obj = { greet: () => console.log(this === obj) }; obj.greet(); // true
不可绑定this箭头函数不能使用call或apply方法来改变this的值。let fn = () => this; fn.call({}); // 指向原始上下文