Javascript Object.setPrototypeOf ()

O método JavaScript Object.setPrototypeOf () define o protótipo de um objeto especificado para outro objeto ou nulo.

A sintaxe do setPrototypeOf()método é:

 Object.setPrototypeOf(obj, prototype)

O setPrototypeOf()método, sendo um método estático, é chamado usando o Objectnome da classe.

Parâmetros setPrototypeOf ()

O setPrototypeOf()método inclui:

  • obj - O objeto que deve ter seu protótipo definido.
  • protótipo - O novo protótipo do objeto (um objeto ou nulo).

Valor de retorno de setPrototypeOf ()

  • Retorna o objeto especificado.

Nota: Alterar o ((Prototype))de um objeto é atualmente uma operação muito lenta em todos os navegadores e mecanismos de JavaScript.

Exemplo 1: Usando Object.setPrototypeOf ()

 let Animal = ( makeSound() ( console.log(`$(this.name), $(this.sound)!`); ), ); // defining new Dog object function Dog(name) ( this.name = name; this.sound = "bark"; // setting prototype to Animal Object.setPrototypeOf(this, Animal); ) dog1 = new Dog("Marcus"); dog1.makeSound(); // Marcus, bark!

Resultado

 Marcus, latiu!

Exemplo 2: Usando Object.setPrototypeOf ()

 let Animal = ( makeSound() ( console.log(`$(this.name), $(this.sound)!`); ), ); // defining object class Dog ( constructor(name, age) ( this.name = name; this.sound = "bark"; ) introduce() ( console.log(`I'm $(this.name). I am $(this.age) years old.`); ) ) // Here Dog.prototype is passed as it is an object, while Dog is not an object Object.setPrototypeOf(Dog.prototype, Animal); dog1 = new Dog("Marcus", 3); console.log(dog1); dog1.makeSound(); // Marcus, bark!

Resultado

 nome: "Marcus" som: "latido" __proto__: construtor: classe Cão introduzir: ƒ introd () __proto__: makeSound: ƒ makeSound () __proto__: Objeto Marcus, latido!

Leitura recomendada: Javascript Object isPrototypeOf ()

Artigos interessantes...