[英]Immediately trigger function if Global var becomes undefined
我有全局變量,例如window.remote.storageData
,它在腳本運行時填充。 但是,在某些情況下,它變得明確未定義。 在那些情況下,我想觸發函數以重新加載它。 我為此使用setInterval:
setInterval(function(){...},timer);
但是,如果var在計時器范圍內變得不確定,則我的代碼會出錯。 微小的計時器間隙卡在了我的應用程序中,那些計時器少於500的解決方案無法正常工作。
有什么方法可以在更改變量值時立即觸發功能?
如果使用ES5瀏覽器,並且未凍結remote
則可以使用自定義get / set定義屬性。
(function(remote) {
var value = remote.storageData;
try {
Object.defineProperty(remote, 'storageData', {
get: function() { return value;}
set: function(newVal) {
if(typeof newVal === 'undefined') {
newVal = //some code to get value
}
value = newVal
}
})
} catch(e) {
console.log(e)
}
}(window.remote))
但是某些代碼仍然可以替換整個window.remote
對象。 在這種情況下,您需要使用window
本身的自定義get / set定義remote
屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.