跳到主要内容

禁止“此”

@serverSerrverlesskiy

卸下 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.

Poor

this 在許多情況下會丟失上下文(返回值未知):

-在嵌套函數中丟失上下文 -在回調中丟失上下文

  • this 當該方法用作事件處理程序時會丟失上下文。

Best language

The_best

JavaScript既是一種功能編程語言,又是一種基於原型的語言。 如果我們擺脫了這一點,我們將剩下JavaScript作為一種功能性編程語言。 這樣更好!

同時,沒有 this JavaScript提供了一種新的獨特方法,無需類和繼承即可進行面向對象的編程。

放棄這個

remember

避免的最佳方法 this 相關問題是不使用 this 都!

JavaScript

JavaScript 沒有這種語言,看起來像是最好的函數式編程語言!

我們可以創建封裝的對象,而無需將其用作閉包的集合。 在...的幫助下 React Hooks 我們可以創建有狀態的組件 而無需 this.

this 在不破壞所有現有應用程序的情況下,無法從JavaScript中刪除關鍵字。 但是,該怎麼辦? 我們可以不用自己編寫我們的代碼 this 並且僅允許在庫中使用。 同時, new rules ESLint 被引入,禁止使用 this.

從上一課開始 classes, 我們告別 this 跟他們。

問題?

Problem

寫給 Discord聊天。

問題:

Question

this 關鍵字是 -

1.方法所屬的對象 2.函數中的第一個參數 3.屬性集

是否可以不這樣做:

1.可以,最好不要使用 2.有可能,但不建議 3.這是不可能的,因為 this 無法從JavaScript中刪除

沒有 JavaScript this 看起來最好:

1.函數式編程語言 2.程序語言 3.邏輯編程語言

為了了解您學到了多少本課程,請對 mobile application of our school on this topic.

EnglishMoji!

鏈接

  1. Removing the 'this' keyword from JavaScript makes the language better
  2. The article "The this keyword in JavaScript"
  3. MDN web doc. Article "this"

貢獻者 ✨

感謝這些好人 (emoji key):


Dmitriy K.


Dmitriy Vasilev

💵

Resoner2005

🐛 🎨 🖋

Navernoss

🖋 🐛 🎨

EnglishMoji!