handler.deleteProperty()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
La méthode handler.deleteProperty()
est une trappe pour l'opérateur delete
.
Exemple interactif
const monster1 = {
texture: "scaly",
};
const handler1 = {
deleteProperty(target, prop) {
if (prop in target) {
delete target[prop];
console.log(`property removed: ${prop}`);
// Expected output: "property removed: texture"
}
},
};
console.log(monster1.texture);
// Expected output: "scaly"
const proxy1 = new Proxy(monster1, handler1);
delete proxy1.texture;
console.log(monster1.texture);
// Expected output: undefined
Syntaxe
var p = new Proxy(cible, {
deleteProperty: function (cible, propriété) {},
});
Paramètres
Valeur de retour
La méthode deleteProperty()
doit renvoyer un booléen qui indique si oui ou non la propriété a été supprimée.
Description
La méthode handler.deleteProperty()
est une trappe permettant d'intercepter les opérations de l'opérateur delete
.
Interceptions
Cette trappe peut intercepter les opérations suivantes :
- La suppression d'une propriété :
delete proxy[toto]
etdelete proxy.toto
Reflect.deleteProperty()
Invariants
Si les invarians suivants ne sont pas respectés, le proxy renverra une exception TypeError
:
- Une propriété ne peut pas être supprimée s'il existe une propriété correspondante sur l'objet cible qui est une propriété propre et non-configurable.
Exemples
Dans l'exemple qui suit, on intercepte les opérations de delete
.
var p = new Proxy(
{},
{
deleteProperty: function (cible, prop) {
console.log("appelée sur : " + prop);
return true;
},
},
);
delete p.a; // "appelée sur : a"
Spécifications
Specification |
---|
ECMAScript® 2025 Language Specification # sec-proxy-object-internal-methods-and-internal-slots-delete-p |
Compatibilité des navigateurs
BCD tables only load in the browser
Voir aussi
Proxy
handler
- L'opérateur
delete
Reflect.deleteProperty()