本篇主要是对于《ES6标准入门》中箭头函数部分内容的学习与总结。
推荐大家可以买这本书来看一下。
章节:第七章
基本用法
ES6允许使用箭头(=>)定义函数
var f = v => v;
等同于
var f = function(v) {
return v;
}
若需要多个参数,
var f = (x,y)=>x+y;
若箭头函数的代码块多于一条语句,需要用大括号将其括起来,并使用return语句返回。
var f = (x,y)=>{return x+y}
若返回值是一个对象,则需要用括号括起来,
var f = (x,y)=>({x:1,y:2});
使用箭头函数可以简化回调函数。
比如将正常函数写法
[1,2,3].map(function(x) {
return x * x;
}
简化为
[1,2,3].map(x => x * x);
rest参数与箭头函数函数结合
const headAndTail = (head, ...tail) => [head, tail];
headAndTail(1,2,3,4,5) // [1,[2,3,4,5]]
注意事项
箭头函数的this指向的是定义时所在的对象。这点后续可深入展开。
function fnc() {
var x = 1;
return () => this.x; //1
}
箭头函数不能用做构造函数
箭头函数没有arguments对象
不可以使用yield命令,因此箭头函数不能用作Generater函数
箭头函数自身没有this