JavaScript | Método Object.setPrototypeOf()

El método Object.setPrototypeOf() en JavaScript es un objeto integrado estándar que establece el prototipo (es decir, la propiedad interna [[Prototype]]) de un objeto especificado en otro objeto o nulo.
Sintaxis: 
 

Object.setPrototypeOf(obj, prototype)

Parámetros: Este método acepta dos parámetros como se mencionó anteriormente y se describe a continuación: 
 

  • obj: este parámetro es el objeto que va a tener su prototipo establecido.
  • Prototipo: este parámetro es el nuevo prototipo del objeto. Puede ser un objeto u objeto nulo.

Valor devuelto: este método devuelve el objeto especificado.
Los siguientes ejemplos ilustran el método Object.setPrototypeOf() en JavaScript:
Ejemplo 1: 
 

javascript

let geek1 = { 
  prop1() { 
    return 'Object.isExtensible()'; 
  },
  prop2() { 
    return 'JavaScript '; 
  }
} 
let geek2  = { 
  prop3() { 
    return 'Geeksforgeeks'; 
  } 
} 
 
Object.setPrototypeOf(geek2, geek1); 
   
console.dir(geek2);
console.log(geek2.prop3());
console.log(geek2.prop2());
console.log(geek2.prop1());

Producción: 
 

"Geeksforgeeks"
"JavaScript "
"Object.isExtensible()"

Ejemplo 2: 
 

javascript

var geeks1 = { 
   prop1() { 
     console.log(this.name + ' is Best platform'); 
   },
   prop2() { 
     console.log(this.name + ' provide jobs opportunity'); 
   }
}; 
   
class geeks2 { 
   constructor(name) { 
   this.name = name; 
  } 
} 
   
Object.setPrototypeOf(geeks2.prototype, geeks1);  
var result = new geeks2('GeeksforGeeks'); 
result.prop1();
result.prop2();

Producción: 
 

"GeeksforGeeks is Best platform"
"GeeksforGeeks provide jobs opportunity"

Navegadores compatibles: los navegadores compatibles con el método Object.setPrototypeOf() se enumeran a continuación: 
 

  • Google Chrome 34 y superior
  • Borde 12 y superior
  • Firefox 31 y superior
  • Internet Explorer 11 y superior
  • Ópera 21 y superior
  • Safari 9 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *