ES6中的箭头函数和平时使用的函数的区别
-
this
大部分人都知道是this不在动态绑定了,而是在写箭头函数的时候就定义好了 -
返回值
关于这个问题的出现,是因为看到一些关于箭头函数的应用
首先来猜下一下会console什么出来
let fn1 = function (a, b) {
a + b
}
let fn2 = function (a, b) {
return a + b
}
let fn3 = (a, b) => a + b
let fn4 = (a, b) => { a + b }
let fn5 = (a, b) => {return a + b}
fn1(1, 2)
fn2(1, 2)
fn3(1, 2)
fn4(1, 2)
fn5(1, 2)
结果 undefined/ 3/ 3/ undefined/ 3
实验证明,在不添加大括号的时候箭头函数会默认return语句,加了大括号就正常,所以fn4和fn1一样显示undefined
应用
- 连续的箭头函数使用
let fn = (x) => (y) => x+y
fn(1) // y=>x+y
fn(2) // 3
- 偏函数
偏应用一个函数意思是通过预先填充原始函数的部分(不是全部)参数来创建一个新函数。
let fn = (x) => (y) => x+y
let firstFn = fn(1) // 先填充一部分
firstFn(2) // 3 在补充后计算
还有很多很多应用,这里主要是想说明箭头函数返回的值,尤其是在连续使用箭头函数的情况下不被吓到。