handler.deleteProperty()
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 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
Les paramètres suivants sont passés à la méthode deleteProperty. this est lié au gestionnaire.
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® 2026 Language Specification> # sec-proxy-object-internal-methods-and-internal-slots-delete-p> |
Compatibilité des navigateurs
Chargement…
Voir aussi
Proxyhandler- L'opérateur
delete Reflect.deleteProperty()