deleteProperty()
- deleteProperty()捕获器会在 delete 操作符中被调用。对应的反射 API 方法为 Reflect.deleteProperty()。
const myTarget = {}; const proxy = new Proxy(myTarget, { deleteProperty(target, property) { console.log("deleteProperty()"); return Reflect.deleteProperty(...arguments); }, }); delete proxy.foo; // deleteProperty()
- 返回值
deleteProperty() 必须返回布尔值,表示删除属性是否成功。返回非布尔值会被转型为布尔值。 - 拦截的操作
delete proxy.property; delete proxy[property]; Reflect.deleteProperty(proxy, property); - 捕获器处理程序对象参数
target: 目标对象;
property: 引用的目标对象上的字符串键属性; - 捕获器的不变式
如果自有的 target.property 存在且不可配置,则处理程序不能删除这个属性。