今天是 Scope & Closure CH.3 的最後一篇文
先說為什麼要探討 arrow function scope,我們知道 arrow function 寫法很簡潔,甚至不用 function keyword 就能宣告一個函式,不用 {} 也能回傳值。所有與 function scope 有關的角色,arrow function 都省略了,那 arrow function 還有 scope 嗎?
答案是:有的。
const booking = genre => console.log(genre);
booking('ticket'); // ticket
console.log(genre); // ReferenceError: genre is not defined
booking 是個 arrow function,既沒有 function 也沒有 {},但在全域要調用 genre 時,卻發生 Reference Error。
原因在於,arrow function 與一般的 function 一樣,也有 scope,雖然看不出來,也沒有 curly braces,但 arrow function 是有 scope 的。
參考