El método handler.getOwnPropertyDescriptor() en Javascript es una trampa para el método Object.getOwnPropertyDescriptor() . Una propiedad no se puede informar como inexistente si existe como una propiedad propia no configurable del objeto de destino.
Sintaxis:
const p = new Proxy(target, { getOwnPropertyDescriptor: function(target, prop) { } });
Parámetros: Este método acepta dos parámetros como se mencionó anteriormente y se describe a continuación:
- Destino: este parámetro es el objeto de destino.
- Prop: este parámetro es el nombre de la propiedad cuya descripción se debe recuperar.
Valor devuelto: este método devuelve un objeto o undefined.
Los siguientes ejemplos ilustran el método handler.getOwnPropertyDescriptor() en JavaScript:
Ejemplo 1:
javascript
<script> const monster1 = { num: 4 }; const handler1 = { getOwnPropertyDescriptor(target, prop) { console.log(`Type : ${prop}`); return { configurable: true, enumerable: true, value: 5 }; } }; const proxy1 = new Proxy(monster1, handler1); console.log(Object.getOwnPropertyDescriptor(proxy1, 'num').value); console.log(Object.getOwnPropertyDescriptor(proxy1, 'bool').enumerable); </script>
Producción:
> "Type : num" > 5 > "Type : bool" > true
Ejemplo 2:
javascript
<script> const p = new Proxy({ VAL: 20}, { getOwnPropertyDescriptor: function(target, prop) { console.log('Property : ' + prop); return { configurable: true, enumerable: true, value: 10 }; } }); console.log(Object.getOwnPropertyDescriptor(p, 'VAL').value); const obj = { a: 10 }; Object.preventExtensions(obj); const pval = new Proxy(obj, { getOwnPropertyDescriptor: function(target, prop) { return undefined; } }); console.log(Object.getOwnPropertyDescriptor(pval)); </script>
Producción:
> "Property : VAL" > 10 > undefined
Navegadores compatibles: los navegadores compatibles con el método handler.getOwnPropertyDescriptor() se enumeran a continuación:
- Google Chrome 49 y superior
- Borde 12 y superior
- Firefox 18 y superior
- Ópera 36 y superior
- Safari 10 y superior
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA