A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/set below:

handler.set() - JavaScript | MDN

handler.set()

Baseline Widely available

Die handler.set() Methode ist eine Falle für die [[Set]] interne Objektmethode, die bei Operationen verwendet wird, wie zum Beispiel beim Setzen eines Eigenschaftswerts durch Eigenschafts-Zugriffsoperatoren.

Probieren Sie es aus
const monster = { eyeCount: 4 };

const handler = {
  set(obj, prop, value) {
    if (prop === "eyeCount" && value % 2 !== 0) {
      console.log("Monsters must have an even number of eyes");
    } else {
      return Reflect.set(...arguments);
    }
  },
};

const proxy = new Proxy(monster, handler);

proxy.eyeCount = 1;
// Expected output: "Monsters must have an even number of eyes"

console.log(proxy.eyeCount);
// Expected output: 4

proxy.eyeCount = 2;
console.log(proxy.eyeCount);
// Expected output: 2
Syntax
new Proxy(target, {
  set(target, property, value, receiver) {
  }
})
Parameter

Die folgenden Parameter werden an die set() Methode übergeben. this ist an den Handler gebunden.

target

Das Zielobjekt.

property

Ein String oder Symbol, der den Eigenschaftsnamen darstellt.

value

Der neue Wert der Eigenschaft, die gesetzt werden soll.

receiver

Der this Wert für Setter; siehe Reflect.set(). Dies ist normalerweise entweder der Proxy selbst oder ein Objekt, das vom Proxy erbt.

Rückgabewert

Die set() Methode muss einen Boolean zurückgeben, der angibt, ob die Zuweisung erfolgreich war oder nicht. Andere Werte werden in Booleans umgewandelt.

Viele Operationen, einschließlich der Nutzung von Eigenschafts-Zugriffsoperatoren im strict mode, werfen einen TypeError, wenn die [[Set]] interne Methode false zurückgibt.

Beschreibung Abfangmöglichkeiten

Diese Falle kann folgende Operationen abfangen:

Oder jede andere Operation, die die [[Set]] interne Methode aufruft.

Invarianten

Die [[Set]] interne Methode des Proxys wirft einen TypeError, wenn die Handler-Definition eine der folgenden Invarianten verletzt:

Beispiele Abfangen des Setzens eines Eigenschaftswertes

Der folgende Code fängt das Setzen eines Eigenschaftswertes ab.

const p = new Proxy(
  {},
  {
    set(target, prop, value, receiver) {
      target[prop] = value;
      console.log(`property set: ${prop} = ${value}`);
      return true;
    },
  },
);

console.log("a" in p); // false

p.a = 10; // "property set: a = 10"
console.log("a" in p); // true
console.log(p.a); // 10
Spezifikationen Browser-Kompatibilität Siehe auch

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4