參考: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對象,指向定義箭頭函數時所在的對象,而不是箭頭函數本身***