如何監聽 js 中變數的變化?

我現在有這樣一個需求,需要監控js的某個變數的改變,如果該變數發生變化,則觸發一些事件,不能使用timeinterval之類的定時去監控的方法,不知道有比較好的解決方案么?

比如我定義了如下全局變數:

  1. var a= { zhihu:0 };

需要做的是當config.jiankong值被其他js文件中的某些函數改變時,需要觸髮指定的事件!


這個問題問的很好。

流行的MVVM的JS庫/框架都有共同的特點就是數據綁定,在數據變更後響應式的自動進行相關計算並變更DOM展現。所以這個問題也可以理解為如何實現MVVM庫/框架的數據綁定

常見的數據綁定的實現有臟值檢測,基於ES5的getter和setter,以及ES已被廢棄的Object.observe,和ES6中添加的Proxy。

臟值檢測

angular使用的就是臟值檢測,原理是比較新值和舊值,當值真的發生改變時再去更改DOM,所以angular中有一個$digest。那麼為什麼在像ng-click這樣的內置指令在觸發後會自動變更呢?原理也很簡單,在ng-click這樣的內置指令中最後追加了$digest。

簡易的實現一個臟值檢測:

&
&
&
&
&two-way binding&
&

&
&

在 Google 搜索 Let it snow 的效果是怎麼實現的?
好的 Web 前端年薪會有多少?
從技術角度講,作為一個前端開發人員,怎樣才能寫出讓人眼前一亮的前端頁面?
關於vertical-align:top問題?
為什麼說 html 和 css 根本不算編程?

TAG:前端開發 | JavaScript |