Ein Proxy in JavaScript ist ein spezielles Objekt, mit dem Sie das Verhalten grundlegender Vorgänge (z. B. Eigenschaftssuche, Zuweisung, Aufzählung, Funktionsaufruf usw.) anpassen können ein anderes Objekt. Es ist, als hätte man einen schelmischen Mittelsmann, der Interaktionen mit einem Objekt abfangen und verändern kann.
Proxys sind aus verschiedenen Gründen nützlich:
Validierung: Stellen Sie die Datenintegrität sicher, indem Sie Zuweisungen validieren.
Protokollierung: Verfolgen Sie Vorgänge an einem Objekt zum Debuggen oder Überwachen.
Standardwerte: Geben Sie Standardwerte an, wenn auf Eigenschaften zugegriffen wird.
Zugriffskontrolle:Zugriff auf bestimmte Eigenschaften einschränken oder ändern.
Virtuelle Eigenschaften: Definieren Sie Eigenschaften, die nicht physisch auf dem Objekt vorhanden sind.
Stellen Sie sich vor, Sie haben ein Kind namens Timmy und möchten sicherstellen, dass es nicht zu viele Kekse isst. Sie verhalten sich wie ein überfürsorglicher Elternteil, der seine Keksaufnahme überwacht und kontrolliert.
let timmy = { cookies: 3 }; let overprotectiveParent = new Proxy(timmy, { get(target, property) { console.log(`Overprotective Parent: "Timmy currently has ${target[property]} ${property}."`); return target[property]; }, set(target, property, value) { if (property === 'cookies' && value > 5) { console.log('Overprotective Parent: "No, Timmy, you can’t have more than 5 cookies!"'); return false; } console.log(`Overprotective Parent: "Alright, Timmy, you can have ${value} ${property}."`); target[property] = value; return true; } }); // Checking Timmy's cookies console.log(overprotectiveParent.cookies); // Overprotective Parent: "Timmy currently has 3 cookies." // Trying to give Timmy too many cookies overprotectiveParent.cookies = 6; // Overprotective Parent: "No, Timmy, you can’t have more than 5 cookies!" // Setting a reasonable number of cookies overprotectiveParent.cookies = 4; // Overprotective Parent: "Alright, Timmy, you can have 4 cookies." console.log(overprotectiveParent.cookies); // Overprotective Parent: "Timmy currently has 4 cookies."
Das obige ist der detaillierte Inhalt vonEin Proxy in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!