如何在不丢失其他侦听器的情况下侦听变量或对象属性上设置的值。
例如
var myModel;
myModel = 10;
var myListener1 = function(oldVal, newVal) {
//do stuff
}
var myListener2 = function(oldVal, newVal) {
//do other stuff
}
在这里,我希望在为变量 myModel 设置值时调用 myListener1 和 myListener2。稍后在其他函数中可能还希望在 setter 上向 myModel 添加另一个侦听器,因此它不应该覆盖现有的侦听器。
我知道应该有一种方法可以使用 Object.defineProperty()。此外,最好有一个针对 IE8+ 的跨浏览器解决方案。