参考:https://www.cnblogs.com/secretAngel/p/9699356.html
(1)、只有一个参数且只有一句表达式语句的,函数表达式的花括号可以不写
let test = a => a; // 只有一个参数a,这里的表达式相当于 "return a"
(2)、如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。
let getData = () => { 表达式语句... } // 没有任何参数
let getInit = (name, date) => { 表达式语句... } // 两个及以上参数
(3)、返回值为一个对象时,需要使用括号()将该对象包裹起来,否则会将{ }内的语句当成表达式而报错,如下:
// 返回对象 { firstName: firstName, lastName: lastName }
let hello = (firstName, lastName) => ({ firstName: firstName, lastName: lastName })
(4)、匿名函数的时候
①只有一个参数:a => a++; // 相当于 function(a) { return a++; }
②不带参数:() => { 表达式语句... }
③两个及以上参数:(a, b) => { 表达式语句; }
***在箭头函数中,箭头函数本身没有自己的this对象,其内部的this就是箭头函数外层代码块的this,并非箭头函数本身***
***箭头函数体内的this对象,指向定义箭头函数时所在的对象,而不是箭头函数本身***