作者:JShaman團隊,轉載請保留
功能目標
實時監視一個變量的值,當值發生改變時,馬上給出提示。
實現方法一
直觀且樸素的方法,可以用setInterval,循環檢測變量的值,示例代碼:
//要監視的變量 var test_value = 1; setInterval(function(){ if(test_value != 1){ console.log("值變成了:",test_value); } },1000);
運行效果:
雖然確實可以實現,但笨拙且低效果。
實現方法二
先看代碼:
var test_obj = {}; Object.defineProperties(test_obj, { a: { get: function() { console.log("取值:",a) return a }, set: function(new_value) { a = new_value; console.log("設值:",a) } } }); test_obj.a = "JShaman是專業的JavaScript混淆加密平臺";
這段代碼中,使用了對象,defineProperties方法可以設置或修改對像的屬性,對像的get、set分別是取值、賦值方法。于是便可以優雅的監視變量值。
初始設置test_obj.a為1,之后任意時間修改值,都會被實時察覺,運行效果如下:
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.