this 觀念整理
this 簡介
不管是在全域的環境下,或是在特定的函式,都可調用 this 這個關鍵字
那麼 this 因為在每個執行環境都存在,所以 this 很容易被誤認為指向函式
函式本身這個物件所能提供的屬性非常有限,通常來說不會使用函式調用 this 本身this 通常是指向可以被運用的物件,所以不要誤認為函式中的 this 就指向該函式
this 是在執行函式時候就自然產生,不需要去宣告他,他是個關鍵字
如下圖 Chrome 的 Source 按下 debug 工具,按下圖中的按鈕
重整之後來進入這個函式的執行堆疊
並連續兩次按下圖片上的按鈕
接下來會發現,Local 會自動帶上 this
而這個 this 目前是指向 window 而這個 this 他實際指向跟我們如何去呼叫這個函式有很大的關連性
this 基本觀念
- 每個執行環境都有屬於自己的
this關鍵字 this與函式如何宣告沒有關聯性,僅與呼叫方式有關- 嚴格模式下,簡易呼叫會有很大的改變
常見的調用方式
this 的指向與怎麼呼叫他關係並不大,主要原因在怎麼去調用他
以下為常見的調用方式,這些調用方式就影響 this 的指向
- 作為物件方法 (最常運用
this的方法)- 簡易呼叫 (絕大多數的呼叫方式)
bind,apply,call方法newDOM事件處理器- 箭頭函式 (
ES6)
關於 this 的文章是紀錄 六角學院 JavaScrip 核心篇 上課筆記內容
接著則繼續說明 this 調用方式