使用 Proxy 和 Observable Slim 監聽 JavaScript 中的變數變更
JavaScript 缺少在變數值變更時觸發的本機事件。這在監控應用程式內的數據時可能會帶來挑戰。然而,現代解決方案已經出現來滿足這一需求。
代理物件
代理物件於 2018 年推出,提供了一種強大的機制來攔截和回應對一個物體。它允許您定義一個集合處理程序,如下所示:
const targetObj = {}; const targetProxy = new Proxy(targetObj, { set: function (target, key, value) { console.log(`${key} set to ${value}`); target[key] = value; return true; } });
此範例示範如何在 targetObj 的屬性發生變更時記錄鍵和新值。
代理程式的缺點物件
嵌套物件的Observable Slim
對於涉及嵌套物件變更的場景, Observable Slim 提供了量身定制的解決方案:
const test = {testing:{}}; const p = ObservableSlim.create(test, true, function(changes) { console.log(JSON.stringify(changes)); });
在此例如,對test.testing 的屬性所做的變更將以JSON 格式記錄到控制台。
結論
雖然在 JavaScript 中監視變數變化曾經是一項挑戰, Proxy 和 Observable Slim 現在為簡單和複雜的場景提供了有效的解決方案。 Proxy 擅長追蹤單一物件的更改,而 Observable Slim 可以輕鬆處理巢狀物件。
以上是如何使用 Proxy 和 Observable Slim 檢測 JavaScript 中的變數變化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!