首頁 >web前端 >js教程 >在組織基於 JavaScript 原型的程式碼時如何維護「this」值?

在組織基於 JavaScript 原型的程式碼時如何維護「this」值?

Barbara Streisand
Barbara Streisand原創
2024-11-30 12:07:12557瀏覽

How Can I Maintain the

物件導向JavaScript 中的程式碼組織和「this」值

在組織基於JavaScript 原型的程式碼組織和「this」值

Carousel.prototype.controls = {
   next: function () { ... } , 
   prev: function() { ... },
   bindControls: function () { .. }
};

在組織基於JavaScript 原型的程式碼時,常見的挑戰是保留物件引用和繼承。假設您有一個帶有各種函數(如 next()、prev() 和 bindControls())的 Carousel 類別。為了增強程式碼組織,您希望將這些函數分組在控制項屬性下,如下所示:

但是,這種方法破壞了「this」值,而「this」值對於存取物件屬性和方法至關重要。若要保持原始上下文中的「this」值,可以採用以下解決方案:
var Controls = function (controllable_object) {
    this.ref = controllable_object;
};
Controls.prototype.next = function () {
    this.ref.foo();
}
// ..

var Carousel = function () {
    this.controls = new Controls(this);
};
// ..

建立一個 Controls 類,該類別在 Controls 建構子中保留對可控物件的參考。 Controls 中處理操作的方法,例如 next(),使用參考來呼叫可控制物件中對應的方法。

這確保了繼承性,並允許您透過像依賴注入這樣的機制。

以上是在組織基於 JavaScript 原型的程式碼時如何維護「this」值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn