如何偵聽在變量或對象屬性上設置的值,而不會丟失其他偵聽器。攔截javascript值設置器
例如
var myModel;
myModel = 10;
var myListener1 = function(oldVal, newVal) {
//do stuff
}
var myListener2 = function(oldVal, newVal) {
//do other stuff
}
在這裏我要myListener1和myListener2一旦某個值設置爲可變基於myModel被調用。後來在其他函數中,可能還需要將另一個偵聽器添加到setter上的myModel,以便它不應覆蓋現有的偵聽器。
我知道應該有一種方法用Object.defineProperty()來做到這一點。 另外,爲IE8 +提供跨瀏覽器的解決方案會很好。
不知道有內置的東西,你必須寫一些代碼。查找「觀察者模式」或「pub/sub」作爲示例(如果我理解正確)。 – elclanrs
你可以使用getters和setter,或者'Object.watch()' –
@JoeSimmons你能舉個例子嗎? getters和setter是什麼意思? – danial