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

Wie kann ich Änderungen an JavaScript-Variablen erkennen?

Patricia Arquette
Freigeben: 2024-12-18 07:12:10
Original
470 Leute haben es durchsucht

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'
Nach dem Login kopieren

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}}]
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage