El método Reflect.setPrototypeOf() en JavaScript se usa para establecer el prototipo de un objeto específico en otro objeto o en Null. Este método devuelve el valor booleano de la operación que se realizó correctamente.
Sintaxis:
Reflect.setPrototypeOf(obj, prototype)
Parámetros:
- Obj: este parámetro contiene el objeto de destino y se utiliza para configurar el prototipo.
- Prototipo: este parámetro contiene el nuevo prototipo del objeto. Puede ser cualquier objeto o simplemente un nulo.
Valor de retorno: este método siempre devuelve un valor booleano que indica si la configuración del prototipo se realizó correctamente o no.
Excepciones: un TypeError es una excepción dada como resultado, cuando el destino no es un objeto.
Los siguientes ejemplos ilustran el método Reflect.setPrototypeOf() en JavaScript:
Ejemplo 1:
javascript
const object1 = {}; console.log(Reflect.setPrototypeOf(object1, Object.prototype)); console.log(Reflect.setPrototypeOf(object1, null)); const object2 = {}; console.log(Reflect.setPrototypeOf(Object.freeze(object2), null)); let object3 = { gfg() { return 'value'; } } let obj = { geeks() { return 'answer'; } } Object.setPrototypeOf(obj, object3); console.dir(obj); console.log(obj.geeks()); console.log(obj.gfg());
Producción:
true true false "answer" "value"
Ejemplo 2:
javascript
console.log(Reflect.setPrototypeOf({}, Object.prototype) ); // It can change an object's [[Prototype]] to null. console.log(Reflect.setPrototypeOf({}, null)); // Returns false if target is not extensible. console.log(Reflect.setPrototypeOf(Object.freeze({}), null)); // Returns false if it cause a prototype chain cycle. let target = {} let proto = Object.create(target) console.log(Reflect.setPrototypeOf(target, proto) ); var object3 = { gfg() { console.log(this.name + ' have fun.'); } }; class objt { constructor(name) { this.name = name; } } Reflect.setPrototypeOf(objt.prototype, object3); // If you do not do this you will get // a TypeError when you invoke speak var val = new objt('Geeks'); val.gfg();
Producción:
true true false false "Geeks have fun."
Navegadores compatibles: los navegadores compatibles con el método JavaScript Reflect.setPrototypeOf() se enumeran a continuación:
- Google Chrome 49 y superior
- Borde 12 y superior
- Firefox 42 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