ES6 允许使用“箭头”(=>
)定义函数。
例:
1.一个参数
x => x * x
上面的箭头函数相当于:
function (x) { return x * x; }
2.如果参数不是一个,就需要用括号()
括起来: 包括没有参数的情况
// 两个参数: (x, y) => x * x + y * y // 无参数: () => 3.14 // 可变参数: (x, y, ...rest) => { var i, sum = x + y; for (i=0; i<rest.length; i++) { sum += rest[i]; } return sum; }
匿名函数不用写函数名,箭头函数连function 命令都省略了
注意:
箭头函数看上去是匿名函数的一种简写,但实际上,箭头函数和匿名函数有个明显的区别:箭头函数内部的this
是词法作用域,由上下文确定。
由于this
在箭头函数中已经按照词法作用域绑定了,所以,用call()
或者apply()
调用箭头函数时,无法对this
进行绑定,即传入的第一个参数被忽略
参考资料:
http://es6.ruanyifeng.com/#docs/function#%E7%AE%AD%E5%A4%B4%E5%87%BD%E6%95%B0
https://www.liaoxuefeng.com/wiki/1022910821149312/1031549578462080