需要注意的是,箭頭函式的 this 與一般函式不同,箭頭函式的 this 會綁定到其定義時所在的物件。
因為筆者在準備範例時在 Deno 上遇到了一些問題,所以會先將這部分放到問題解決再補上。
如果想進一步學習也可以參考今天的延伸閱讀。
目前遇到的問題
上面提到筆者遇到了一些問題,為了證明筆者不是在找藉口不寫稿,筆者就把目前遇到的問題丟上來:
全域下, this 應該要是 window 而不是 undefined 。
一直噴以下錯誤:
在 Deno 的官方文件中有提到,在全域中的 this 為 window (node.js 為 global),然而不論筆者怎麼嘗試,結果都是 undefined ,我也有考慮到是否為 TypeScript 預設會開嚴格模式,不過筆者也嘗試了官方文件中提到的 -c tsconfig.json 與 --no-check。
當加上 --no-check 執行程式碼時,確實不會在噴出 'this' implicitly has type 'any' because it does not have a type annotation. 的錯誤,不過筆者認為這項作法只是在逃避問題,並不是好作法。
至於在全域中的 this 為 undefined 的問題,我在 tsconfig.json 將嚴格模式中把它關掉以後也不見改善,我在想一定是我沒有將官方文件閱讀清楚,還請各位讀者諒解,我會盡快找出問題的答案,如有必要,也會在 Deno 的 Repo 發看看 issue (但我認為這問題不是 Deno 本身造成的,所以筆者還是希望能自己解決問題)。