21

オブジェクトの指定されたフィールドの変更を検出するために、この要点を見つけました:https ://gist.github.com/3138469

ただし、イベントは1つのフィールドにのみバインドされます。

Javascriptオブジェクト全体の変更を検出するための関数やトリックを知っている人はいますか?

4

3 に答える 3

23

2019年の更新:最近では、プロキシAPIを使用してはるかに効率的な方法でこれを実現できます。オンチェンジライブラリは、これをさらに簡単にするために、舞台裏でProxyAPIを使用します。

2012年の更新: Watch.jsの作成者が、はるかに幅広いブラウザーのサポートを備えたライブラリを参照していることに気づきました。MultiGetSet.JS

これを実現したい場合は、通常Watch.jsを使用しますが、オブジェクト全体または1つの属性を監視できます。

于 2012-07-20T11:44:50.127 に答える
3

現在、これは不可能です。個々のプロパティに対してのみゲッター/セッターを定義できます。

Proxyそれでも、それを行うことができるオブジェクトのドラフトがあります。現在、 FirefoxのJavascript1.8.5でのみサポートされています。

于 2012-07-20T11:35:40.810 に答える
2

これは、watch.jsを使用しては不可能です。オブジェクトの変更またはオブジェクトの属性を検出するだけです。オブジェクトに属性を追加したか、新しく追加された属性を変更したかは検出されません...

于 2014-02-14T19:37:25.487 に答える