观看对象属性

时间:2015-08-14 12:48:56

标签: javascript cross-browser javascript-objects ecmascript-5 ecmascript-harmony

我正在寻找一种跨浏览器的方法,允许我在每次创建/删除/修改javascript对象的属性时定义回调。这应该允许我这样做:

var myObject = {};

function onSet(propertyName, propertyValue) {
    // Do whatever you want here
}

// Attach the 'onSet' function to 'myObject'
// so it will be called everytime we add it a property.

myObject.abc = 'xyz'; // should call "onSet('abc','xyz')"

我在ECMAScript 6文档中看到了一个可以允许我这样做的Proxy对象。它的问题在于它目前仅受最新版本的Firefox和Edge支持。

我虽然可以使用setter / getter来实现它,但似乎只能为属性定义一个(例如,如果x = {y:2};我不知道如何定义一个setter for“ x“,但很容易为”xy“做这件事。可悲的是,这并没有解决我的问题。)

有没有人可以解决这个问题,还是应该让我的代码现在正好等待ECMAScript 6到处支持?

0 个答案:

没有答案