参考以下博客,建议查看原博客,它更为详细;
ES6 阮一峰
var xyd = a => console.log(a);
a('箭头函数');//箭头函数;
xyd就是函数的名称;
xyd = a 这里的a就是函数xyd的参数;
=>这里后面就是代码块
上面的代码等同于:
function xyd(a){
console.log(a);
}
参数
如果箭头函数不需要参数或者需要多个参数,就用();
var xyd = () => console.log('没有参数');
//多个参数
var fn = (a,b,c) => console.log(a,b,c);
如果箭头函数的代码块多于一条语句,就要用花括号{}包裹起来,并用return 返回;
var xyd = (a,b) => {return a+b};
xyd(1,2);//3
如果箭头函数直接返回一个对象,要用()把代码块包裹起来,这是因为javascript把{}理解为代码块;
var xyd = (x,b) => ({name:x,title:b})
与变量解构结合使用;
let xyd = ({fist,last}) => {console.log(fist,last)};
xyd({fist:'1', last:'2'})//1,2
简化回调函数
[1,2,3].map(x =>return x);
//这里()内的x就是回调函数的参数,=>就是回调函数的代码块
//等同于
[1,2,3].map(function(x){
return x;
})
与rest参数结合使用:
let xyd =(a,...b) => return a,b;
xyd(1,2,3,4);//1,[2,3,4]
…b使用了rset参数,把多余的参数放入数组中;这里的b就是一个数组;[2,3,4];
使用箭头函数注意
- 箭头函数的this指向的是定义式所在的函数,而不是调用时所指向的对象;
- 不可以使用构造函数;也就是不能使用new
- 不是可以在箭头函数中使用arguments对象,这个对象在箭头函数中不存在;可以使用rest参数代替;
- 不可以使用yield命令,因此箭头函数不能用作 Generator 函数。