整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ
who is self?又跟 this 有何差異?
前言
實際開發上來講,其實是有機會看到這個單字,所以就來了解一下 self 是什麼以及它與 this 有何差異。
self 與 this 的關係
self 非常的簡單,當你在瀏覽器上輸入 self 的時候,你會得到一個 window 物件,而這個 window 物件就是瀏覽器本身。
這邊我們也知道一件事情 this 在正常狀況下直接呼叫會形成所謂的簡易呼叫,因此會指向到 window:
1 | |
感覺彼此很類似對吧?此刻你會不會認為它的運作模式跟 this 一樣呢?先不要急,我們先繼續看下去。
self 還有一些很有趣的地方,例如:
1 | |
應該覺得很混亂了吧?先來解釋一下它是否與 this 運作方式相同,先看一段範例:
1 | |
猜到答案了嗎?答案是:
1 | |
奇妙吧?這邊我們可以驗證一件事情,代表著 self 不管怎麼樣都是指向在 window,並不會隨著你呼叫方式而改變指向,這邊也額外出一個題型給你試著思考結果:
1 | |
而通常來講可能會看到有些人這樣宣告變數儲存 this:
1 | |
但是在某些狀況下可能會發生一些問題,因此通常會建議改命名為以下:
1 | |
參考文獻
整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ