首頁 >web前端 >js教程 >如何在 JavaScript 的 `setInterval` 回呼中保留 `this` 上下文?

如何在 JavaScript 的 `setInterval` 回呼中保留 `this` 上下文?

Patricia Arquette
Patricia Arquette原創
2024-11-29 10:34:14274瀏覽

How Can I Preserve the `this` Context in JavaScript's `setInterval` Callback?

在 JavaScript 的 setInterval 回呼中保留 this

在 JavaScript 中,this 關鍵字指的是擁有目前正在執行的程式碼的物件。使用 setInterval 時這可能會出現問題,因為回呼函數是在不同的上下文中執行的,因此無法存取原始的 this。要克服這個問題:

在 setInterval 處理程序中存取它

要允許在 setInterval 回調中存取它,我們可以使用 bind()方法:

this.intervalID = setInterval(this.retrieve_rate.bind(this), this.INTERVAL);

這裡,bind(this)確保retrieve_rate回呼中的this始終引用設定間隔的物件(即prefs所在的物件)定義)。

透過此修改,您現在可以在 ajax.onload 回呼中存取 this.prefs:

ajax.onload = function()
{
    // Access this.prefs here
}

以上是如何在 JavaScript 的 `setInterval` 回呼中保留 `this` 上下文?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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