ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で変数の変更を検出するにはどうすればよいですか?

JavaScript で変数の変更を検出するにはどうすればよいですか?

DDD
リリース: 2024-12-29 06:38:09
オリジナル
415 人が閲覧しました

How Can I Detect Variable Changes in JavaScript?

JavaScript での変数の変更のリッスン

JavaScript では、変数の値が変更されたときに通知を受けることが望ましいことがよくあります。これは、2018 年に導入された Proxy オブジェクトを使用して実現できます。Proxy オブジェクトを使用すると、プロパティの変更をインターセプトし、それに応じて応答するプロキシを作成できます。

Proxy オブジェクトを使用するには、まずターゲット オブジェクトを作成します。観測された:

var targetObj = {};
ログイン後にコピー

次に、Proxy オブジェクトを使用してプロキシを作成し、プロパティが次の場合に実行されるコールバックを指定します。 set:

var targetProxy = new Proxy(targetObj, {
  set: function (target, key, value) {
      console.log(`${key} set to ${value}`);
      target[key] = value;
      return true;
  }
});
ログイン後にコピー

プロキシ経由で対象オブジェクトのプロパティを設定すると、コールバック関数が実行されます。例:

targetProxy.hello_world = "test"; // console: 'hello_world set to test'
ログイン後にコピー

Proxy オブジェクトには、古いブラウザでは使用できず、特定のオブジェクトでは期待どおりに動作しない可能性があるという欠点があります。ネストされたオブジェクトの変更を監視するには、Observable Slim などの特殊なライブラリを使用できます。

Observable Slim

Observable Slim は、ネストされたオブジェクトの変更を監視するために設計されたライブラリです。これを使用するには、まず監視対象のオブジェクトを作成します:

var test = {testing:{}};
ログイン後にコピー

次に、Observable Slim を使用して create 関数でプロキシを作成し、変更が発生したときに実行されるコールバックを指定します:

var p = ObservableSlim.create(test, true, function(changes) {
    console.log(JSON.stringify(changes));
});
ログイン後にコピー

観測オブジェクトのプロパティが変化すると、コールバック関数が実行されます。例:

p.testing.blah = 42; // console:  [{"type":"add","target":{"blah":42},"property":"blah","newValue":42,"currentPath":"testing.blah",jsonPointer:"/testing/blah","proxy":{"blah":42}}]
ログイン後にコピー

以上がJavaScript で変数の変更を検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート