demo2s-4

Must Watch!



MustWatch



Proxy Traps And Reflect Methods deleteProperty()

The deleteProperty() trap is called inside the delete operator. Its corresponding Reflect API method is Reflect.deleteProperty().

Example

const myTarget = {}; const proxy = new Proxy(myTarget, { deleteProperty(target, property) { console.log('deleteProperty()'); return Reflect.deleteProperty(...arguments) } }); delete proxy.foo Output:

Return value

deleteProperty() must return a Boolean indicating if the property was successfully deleted or not. Non-Boolean return values will be coerced into a Boolean.

Intercepted operations

delete proxy.property delete proxy[property] Reflect.deleteProperty(proxy, property)

Trap handler parameters

target - Target object property - String key property being referenced on target object

Trap invariants

If an own target.property exists and is non-configurable, the handler cannot delete the property.

Proxy Traps And Reflect Methods ownKeys()

The ownKeys() trap is called inside Object.keys() and similar methods. Its corresponding Reflect API method is Reflect.ownKeys().

Example

const myTarget = {}; const proxy = new Proxy(myTarget, { ownKeys(target) { console.log('ownKeys()'); return Reflect.ownKeys(...arguments) } }); Object.keys(proxy); Output:

Return value

ownKeys() must return an enumerable object that contains either strings or symbols.

Intercepted operations

Object.getOwnPropertyNames(proxy) Object.getOwnPropertySymbols(proxy) Object.keys(proxy) Reflect.ownKeys(proxy)

Trap handler parameters