禁止“此”
卸下 this
JavaScript中的關鍵字可以使語言更好!
這是因為 this
取決於函數的調用方式,而不是定義位置。 因此,JavaScript this
是造成語言混亂пут的根源。
使用此選項可確保函數在調用它的上下文中對確切的對象起作用。
通過 this
方法,您不僅可以引用對象的任何屬性,還可以在某個地方傳遞對整個對象本身的引用(降低應用程序的安全性)。
的價值 this
稱為調用上下文,將在調用函數時確定。 例如,沒有對象聲明的類似這樣的函數是完全有效的:
functionsay Hi() {
console.log(this.firstName)
}
此功能尚不知道會是什麼。 程序執行時將顯示出來。
如果在不同對象的上下文中運行相同的函數,它將收到不同的結果 this
:
var user = { firstName: 'John' }
var admin = { firstName: 'Admin' }
function funcName() {
console.log(this.firstName)
}
user.f = funcName
admin.g = funcName
// this is equal to the object before point:
user.f() // Joni
admin.g() // Admin
admin['g']() // Admin (access to the object is implemented through square brackets)
因此, this
不依賴於函數的創建方式,它是在調用時唯一確定的。
this
及其缺點
方法是存儲在對像中的函數。 為了使功能⚙️知道要處理的對象,請使用 this
.
但 this
在許多情況下會丟失上下文(返回值未知):
-在嵌套函數中丟失上下文 -在回調中丟失上下文
this
當該方法用作事件處理程序時會丟失上下文。
Best language
JavaScript既是一種功能編程語言,又是一種基於原型的語言。 如果我們擺脫了這一點,我們將剩下JavaScript作為一種功能性編程語言。 這樣更好!
同時,沒有 this
JavaScript提供了一種新的獨特方法,無需類和繼承即可進行面向對象的編程。
放棄這個
避免的最佳方法 this
相關問題是不使用 this
都!
JavaScript 沒有這種語言,看起來像是最好的函數式編程語言!
我們可以創建封裝的對象,而無需將其用作閉包的集合。 在...的幫助下 React Hooks 我們可以創建有狀態的組件 而無需 this
.
this
在不破壞所有現有應用程序的情況下,無法從JavaScript中刪除關鍵字。 但是,該怎麼辦? 我們可以不用自己編寫我們的代碼 this
並且僅允許在庫中使用。 同時, new rules ESLint
被引入,禁止使用 this
.
從上一課開始 classes, 我們告別 this
跟他們。
問題?
寫給 Discord聊天。
問題:
this
關鍵字是 -
1.方法所屬的對象 2.函數中的第一個參數 3.屬性集
是否可以不這樣做:
1.可以,最好不要使用
2.有可能,但不建議
3.這是不可能的,因為 this
無法從JavaScript中刪除
沒有 JavaScript this
看起來最好:
1.函數式編程語言 2.程序語言 3.邏輯編程語言
為了了解您學到了多少本課程,請對 mobile application of our school on this topic.
鏈接
- Removing the 'this' keyword from JavaScript makes the language better
- The article "The this keyword in JavaScript"
- MDN web doc. Article "this"
貢獻者 ✨
感謝這些好人 (emoji key):
Dmitriy K. | Dmitriy Vasilev 💵 | Resoner2005 🐛 🎨 🖋 | Navernoss 🖋 🐛 🎨 |