如何监视Javascript对象上新属性的设置

每当在Javascript对象上设置新属性时,我怎么能得到一个回调呢?
即我不知道将要设置哪些属性,但是想要对所设置的任何属性进行回调.

我想要的是

var obj = {};
obj.a = "something"; // triggers callback function

function callback(obj,key,val) {
    console.log(key + " was set to " + val + " on ", obj);
}

这可能吗?

解决方法:

您可以使用新的defineProperty

function onChange(propertyName, newValue){
...
}

var o = {};

Object.defineProperty(o, "propertyName", { 
 get: function() {return pValue; },
 set: function(newValue) { onChange("propertyName",newValue); pValue = newValue;}});

但取决于您需要支持的浏览器版本.

编辑:在Jsfiddle上添加了片段,适用于IE10. http://jsfiddle.net/r2wbR/

上一篇:Oracle索引的监控


下一篇:android-监视AltBeacon的灵敏度