El método handler.setPrototypeOf() en JavaScript es una trampa para el método Object.setPrototypeOf() y devuelve un valor booleano.
Sintaxis:
const p = new Proxy(target, { setPrototypeOf: function(target, prototype) { } });
Parámetros: Este método acepta dos parámetros como se mencionó anteriormente y se describe a continuación:
- target: este parámetro es el objeto de destino.
- prototipo: este parámetro es el nuevo prototipo o nulo del objeto.
Valor devuelto: este método devuelve un valor booleano. Devuelve verdadero si el [[Prototipo]] se cambió con éxito.
Los siguientes ejemplos ilustran el método handler.setPrototypeOf() en JavaScript:
Ejemplo 1:
javascript
<script> const handler1 = { setPrototypeOf(gfg, gfgProto) { gfg.geneticallyModified = true; return false; } }; const gfgProto = {}; const gfg = { geneticallyModified : false }; const proxy1 = new Proxy(gfg, handler1); console.log(Reflect.setPrototypeOf(proxy1, gfgProto)); console.log(gfg.geneticallyModified); var soo={ foo:1 } var proxy = new Proxy(soo, { setPrototypeOf(target, newProto) { } }); console.log('a' in proxy); </script>
Producción:
false true false
Ejemplo 2:
javascript
<script> const handlerThrows = { setPrototypeOf(target, newProto) { throw new Error('custom error'); } }; const newProto = {}, target = {}; const p2 = new Proxy(target, handlerThrows); document.writeln(Object.setPrototypeOf(p2, newProto)); document.writeln(Reflect.setPrototypeOf(p2, newProto)); </script>
Producción:
Error: custom error
Navegadores compatibles: los navegadores compatibles con el método handler.setPrototypeOf() se enumeran a continuación:
- Google Chrome 49 y superior
- Borde 12 y superior
- Firefox 49 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