Heim >Web-Frontend >js-Tutorial >Wie kann ich Änderungen an JavaScript-Variablen erkennen?

Wie kann ich Änderungen an JavaScript-Variablen erkennen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-18 07:12:10431Durchsuche

How Can I Detect JavaScript Variable Changes?

Variablenänderungen in JavaScript beobachten

Ursprüngliche Frage:

Gibt es ein Ereignis in JavaScript, das ausgelöst wird, wenn der Wert von eine bestimmte Variable geändert wird? Bitte ziehen Sie Lösungen mit jQuery in Betracht.

Antwort:

Verwendung von Proxy-Objekten:

Ab 2018 bietet das Proxy-Objekt Folgendes ein wirksamer Mechanismus zum Überwachen und Abfangen von Objekteigenschaftenänderungen. Es funktioniert durch die Erstellung eines Proxy-Objekts, das das Zielobjekt umschließt.

var targetObj = {};
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'

Einschränkungen:

  • Proxy-Objekte werden in älteren Browsern nicht unterstützt (z. B. IE11).
  • Sie können bei bestimmten Objekten unerwartetes Verhalten zeigen (z. B. Datum).

Beobachten verschachtelter Objekte:

Für die Beobachtung von Änderungen in verschachtelten Objekten bieten spezialisierte Bibliotheken wie Observable Slim eine umfassendere Lösung.

var test = {testing:{}};
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}}]

Das obige ist der detaillierte Inhalt vonWie kann ich Änderungen an JavaScript-Variablen erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn