语法
(参数1, 参数2, …, 参数N) => { 函数声明 }
eg:
a=>{console.log(a)}//相当于
function(a){
console.log(a)
}
//相当于:(参数1, 参数2, …, 参数N) =>{ return 表达式; }
(参数1, 参数2, …, 参数N) => 表达式(单一)
function add(a,b){
return a+b;
}
//简写为:
(a,b)=>{//删掉了function和函数名
return a+b;
}
// 当只有一个参数时,圆括号是可选的:
(单一参数) => {函数声明}
单一参数 => {函数声明}
a=>{console.log(a)}
// 没有参数的函数应该写成一对圆括号。
() => {函数声明}
()=>{console.log(2)}
//加括号的函数体返回对象字面表达式:
参数=> ({foo: bar})
let fn = function(){
return {"a":5};
}
//简写为:
let fn = ()=>({"a":5});
//支持剩余参数和默认参数
(参数1, 参数2, …rest) => {函数声明}
(参数1 = 默认值1,参数2, …, 参数N = 默认值N) => {函数声明}
特点
- 不绑定this:箭头函数不会创建自己的this,它只会从自己的作用域链的上一层继承this
- 不绑定arguments
- 箭头函数不能用作构造器,和 new一起用会抛出错误。
作用:
引入箭头函数有两个方面的作用:更简短的函数并且不绑定this。