4

オブジェクトが変更されるたびにコードを実行することは可能ですか?

var a = {x: 12, y: 63};

a.watch(function () { console.log('The object has changed!'); });

a.x = 16;   // The object has changed!
a.y = 1;   // The object has changed!

Firefox でのみ利用できるようです: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/watch

JavaScript / node.jsでこれを達成するにはどうすればよいですか? (可能であれば、getter/setter メソッドを使用せずに)

4

1 に答える 1

4

Object Observeを使用できます...これは実験的なので注意して進めてください...

var obj = {
    foo: 0,
    bar: 1
};

Object.observe(obj, function(changes) {
    console.log(changes);
});

obj.baz = 2;
于 2014-12-23T10:39:03.750 に答える