ÜberblickVerwenden Sie hauptsächlich Object.defineProperty, um eine Datenbindung ähnlich wie vue zu implementieren. erster Schrittconst Daten = { Name: "tom", Alter: 14 } Objekt.defineProperty(Daten, "Name", { erhalten(){ return "Name wurde gelesen" }, setze(Wert){ console.log('Mir wurde zugewiesen',val) } }) //Geben Sie diesen Code in die Browserkonsole ein, um den Effekt anzuzeigen console.log(data.name) Die Ausgabe „data.name“ lautet nicht „tom“, aber „name“ wird gelesen, weil „defineProperty“ das Namensfeld der Daten überwacht und entführt und den Wert ändert, den das Namensfeld hätte zurückgeben sollen. Schritt 2const _data = { ...data } für (lass i in Daten) { Objekt.defineProperty(Daten, i, { erhalten(){ return _data[i]+"geändert durch js" }, setze(Wert){ _Daten[i] = Wert; } }) } Warum werden separate _Daten benötigt?Antwort: Das Datenfeld wird überwacht und das Rückgabeattribut des Felds wird geändert. Die daraus resultierende Auswirkung besteht darin, dass der Browser jedes Mal, wenn das überwachte Feld in Daten abgerufen wird, den von get zurückgegebenen Wert aufruft. Wenn Sie in get direkt return data[i] zurückgeben, ruft der Browser kontinuierlich die get-Methode auf und gerät so in eine Endlosschleife. Fügen Sie den Daten etwas mehr Daten hinzuconst Daten = { Name: "tom", Alter: 14, Freund: "name1": "Zhang San", "name2": "Li Si", "name3": "Wang Wu", "name4": "Zhao Liu" }, } Formatierung des Anfangswertesconst createNewWatch = (Wert, Pfad, übergeordneter Schlüssel, Ereignis) => { //Wenn der Wert nicht vom Objekttyp ist, geben Sie den Wert direkt zurück, if(typeof val != 'object') return val; //Wenn es hingegen vom Typ „Objekt“ ist, rufen Sie WatchObject auf, um die untergeordneten Elemente zu durchlaufen und zu überwachen. //WatchObject wird im folgenden Code erstellt: return WatchObject(val,path.concat(parentKey), event) } Markendesignunternehmen aus Guangzhou https://www.houdianzi.com Objekt formatieren und Wert überwachenconst WatchObject = (Daten, Pfad, Ereignis) => { Funktion WatchObject(){ für (var Schlüssel in Daten) { //Rufen Sie die zuvor erstellte Funktion auf, um den Wert zu formatieren Daten[Schlüssel] = createNewWatch(Daten[Schlüssel], Pfad, Schlüssel, Ereignis) //Erstellen Sie einen Listener für den Datenschlüssel defineProperty(this, key, data[key], path.concat(key), event) } } gibt neues WatchObject zurück() } Zum Abschluss führen Sie den Code aus und schon ist eine einfache Datenüberwachung abgeschlossen. const b = WatchObject(Daten,[],{ setze(Pfad,Wert){ console.log(Pfad,Wert) } }) Oben finden Sie Einzelheiten zur Verwendung von JS zur Implementierung einer einfachen Datenüberwachung. Weitere Informationen zur JS-Datenüberwachung finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: MySQL-Ansichtsprinzipien und grundlegende Bedienungsbeispiele
>>: So installieren Sie Oracle auf Windows Server 2016
Ich lerne derzeit etwas über Redis und Container ...
So ändern Sie den Bild-Hyperlink, wenn Sie mit der...
Überblick Backup ist die Grundlage der Notfallwie...
1. Notwendigkeit des Tunings Ich habe mich immer ...
Die Wirkung ist wie folgt: eine Seite Nach dem Kl...
【Inhalt】: 1. Verwenden Sie den Verlaufsstil des H...
Tutorial-Reihe MySQL-Reihe: Grundlegende Konzepte...
Definition und Verwendung Mithilfe von @media-Abf...
Inhaltsverzeichnis 1. Befehl 2. docker-compose.ym...
Der Unterschied zwischen Inline-Elementen und Blo...
Betriebssystem: Win10 Home Edition Installieren S...
Verwenden Sie JS, um objektorientierte Methoden z...
Dieses Mal haben wir einen RTMP-Liveübertragungss...
Inhaltsverzeichnis 1. Nginx-Installation und Star...
Absolute, relative und fixe Positionierung absolu...