問題:
解決方案:使用 bind() 方法
bind() 方法允許開發人員在原型函數中保留「this」的上下文。它傳回一個新函數,將指定的上下文綁定作為其第一個參數,而其餘參數則傳遞給原始函數。MyClass.prototype.myfunc = function() { this.element.click((function() { // ... }).bind(this)); };在此範例中,bind() 方法用於保留上下文分配給點擊事件處理程序的匿名函數中的「this」。
具有多個原型的範例函數:
使用bind() 無需在每個原型函數中明確儲存對「this」的參考。例如:MyClass.prototype.doSomething = function() { // operate on the element }.bind(this);透過在 doSomething 的定義中使用 bind(),會自動為該類別的所有實例保留「this」的上下文。
避免全域變數:
不建議使用全域變數來儲存對「this」的引用,因為它會污染全域命名空間並防止建立該類別的多個實例而不互相干擾。 bind() 方法提供了更有效率、更簡潔的解決方案。結論
bind() 方法提供了一種強大的方法來保留「this」的上下文原型函數,消除了手動引用和全局變數的需要。這種方法增強了原型 JavaScript 應用程式中程式碼的可讀性、可維護性和靈活性。以上是如何在 JavaScript 原型函數中保留「this」的上下文?的詳細內容。更多資訊請關注PHP中文網其他相關文章!