JavaScriptProgramación

Dominate Object-Oriented Programming with JavaScript: Mastering Object.setPrototypeOf()

Unlock the Power of Prototypes and Inheritance in Your JavaScript Projects

Object.setPrototypeOf() is a powerful method in JavaScript that allows you to change the prototype of an object, enabling you to create complex inheritance patterns and reuse code more effectively. By understanding how to use this function, you can streamline your development process and write more efficient, maintainable code.

Ejemplo 1: Extender un objeto existente


const animal = {
  eats: true,
};

function Persona(name) {
  this.name = name;
}

Persona.prototype = {
  speaks: true,
};

Object.setPrototypeOf(new Persona("John"), animal);

console.log(new Persona("John").eats); // true

En este ejemplo, creamos un objeto «animal» con una propiedad «eats». Luego, definimos una función «Persona» que crea un nuevo objeto con la propiedad «speaks». Utilizamos Object.setPrototypeOf() para establecer el prototipo del objeto creado por la función «Persona» en el objeto «animal», lo que permite que el objeto herede la propiedad «eats» de «animal».

Ejemplo 2: Agregar métodos a un objeto


const person = {
  name: "John",
};

const personMethods = {
  sayHi() {
    console.log("Hi, my name is " + this.name);
  },
};

Object.setPrototypeOf(person, personMethods);

person.sayHi(); // Hi, my name is John

En este ejemplo, creamos un objeto «person» con una propiedad «name». Luego, definimos un objeto «personMethods» que contiene un método «sayHi». Utilizamos Object.setPrototypeOf() para establecer el prototipo del objeto «person» en «personMethods», lo que permite que el objeto herede el método «sayHi» de «personMethods». Luego, podemos llamar al método «sayHi» directamente desde el objeto «person».

Ejemplo 3: Composición de objetos


const car = {
  wheels: 4,
};

const electricCar = {
  battery: true,
};

Object.setPrototypeOf(electricCar, car);

console.log(electricCar.wheels); // 4

En este ejemplo, creamos un objeto «car» con una propiedad «wheels». Luego, creamos un objeto «electricCar» con una propiedad «battery». Utilizamos Object.setPrototypeOf() para establecer el prototipo del objeto «electricCar» en «car», lo que permite que el objeto herede la propiedad «wheels» de «car». Luego, podemos acceder a la propiedad «wheels» directamente desde el objeto «electricCar».

Ejemplo 4: Extender un objeto con una clase


class Animal {
  eats() {
    return true;
  }
}

const animalObject = {
  name: "Lion",
};

Object.setPrototypeOf(animalObject, new Animal());

console.log(animalObject.eats()); // true

En este ejemplo, definimos una clase «Animal» que contiene un método «eats». Luego, creamos un objeto «animalObject» con una propiedad «name». Utilizamos Object.setPrototypeOf() para establecer el prototipo del objeto «animalObject» en un objeto creado a partir de la clase «Animal», lo que permite que el objeto herede el método «eats» de «Animal». Luego, podemos llamar al método «eats» directamente desde el objeto «animalObject».

Conclusión

In conclusion, Object.setPrototypeOf() is a valuable tool for any JavaScript developer looking to improve their object-oriented programming skills. By mastering this method, you can create more modular, reusable code that is easier to maintain and scale as your projects grow. So, don’t hesitate to incorporate it into your next project and watch your code come to life!

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.