Object.create() en JavaScript

¿Objetos y constructores de objetos en JavaScript?  
En el mundo vivo de la programación orientada a objetos ya sabemos la importancia de las clases y los objetos pero a diferencia de otros lenguajes de programación, JavaScript no tiene las clases tradicionales como se ve en otros lenguajes. Pero JavaScript tiene objetos y constructores que funcionan principalmente de la misma manera para realizar el mismo tipo de operaciones. 

  • Los constructores son funciones generales de JavaScript que se utilizan con la palabra clave «nuevo». Los constructores son de dos tipos en JavaScript, es decir, constructores incorporados (array y objeto) y constructores personalizados (definen propiedades y métodos para objetos específicos).
  • Los constructores pueden ser útiles cuando necesitamos una forma de crear un «tipo» de objeto que se pueda usar varias veces sin tener que redefinir el objeto cada vez y esto podría lograrse usando la función Object Constructor. Es una convención usar mayúsculas en el nombre de los constructores para distinguirlos de las funciones regulares.

Por ejemplo, considere el siguiente código: 

function Automobile(color) {
  this.color=color;
}

var vehicle1 = new Automobile ("red");

La función «Automóvil()» es un constructor de objetos, y sus propiedades y métodos, es decir, «color», se declara dentro de ella con el prefijo «esto». Los objetos definidos usando un constructor de objetos se convierten en instantes usando la palabra clave «nuevo». 

Cuando se llama a new Automobile(), JavaScript hace dos cosas: 

  1. Crea un nuevo objeto nuevo (instancia) Automobile() y lo asigna a una variable.
  2. Establece la propiedad del constructor, es decir, el «color» del objeto en Automóvil.

Método 
Object.create() El método Object.create() se utiliza para crear un nuevo objeto con el objeto prototipo y las propiedades especificadas. El método Object.create() devuelve un nuevo objeto con el objeto prototipo y las propiedades especificados.

Aplicaciones:  

  • Object.create() se usa para implementar la herencia.

Sintaxis:  

Object.create(prototype[, propertiesObject])

Parámetros utilizados: 

  1. prototipo: Es el objeto prototipo a partir del cual se tiene que crear un nuevo objeto.
  2. propertiesObject: es un parámetro opcional. Especifica las propiedades enumerables que se agregarán al objeto recién creado.

Valor devuelto: 
Object.create() devuelve un nuevo objeto con el objeto prototipo y las propiedades especificados. 
 

A continuación se proporcionan ejemplos de la función anterior.

Ejemplos:  

Input : function fruits() {
        this.name = 'fruit 1';
        }

        function apple() {
        fruits.call(this);
        }

        apple.prototype = Object.create(fruits.prototype);
        const app = new apple();
        console.log(app.name);

Output : "fruit 1"

Explicación: En este ejemplo, hay dos funciones «frutas» y «manzana». Se crea una nueva instancia de manzana que se denomina «aplicación» y se ha especificado con el prototipo y la propiedad de «frutas», es decir, this.name = ‘fruta 1’. 

Input : function fruits() {
        this.name = 'fruit 1';
        this.season = 'summer';
        }

        function apple() {
        fruits.call(this);
        }

        apple.prototype = Object.create(fruits.prototype);
        const app = new apple();
        console.log(app.name);
        console.log(app.season);

Output : "fruit 1"
         "summer"

Explicación: En este ejemplo, hay dos funciones «frutas» y «manzana». Se crea una nueva instancia de manzana que se denomina «aplicación» y se ha especificado con el prototipo y la propiedad de «frutas», es decir, this.name = ‘fruta 1’ y esta .temporada = ‘verano’.
Los códigos para la función anterior se proporcionan a continuación.

Código 1:

Javascript

<script>
// creating a function which will be the
//prototype for the object to be created later
function fruits() {
    this.name = 'fruit 1';
}
 
// creating a function to whose object will
// inherit properties from the prototype
// using object.create() method
function
apple() {
    fruits.call(this);
}
 
// creating an object of the apple function which
// will have properties of the prototype
// object i.e. fruits
apple.prototype = Object.create(fruits.prototype);
const app = new apple();
 
// Displaying the created object
console.log(app.name);
< /script>

PRODUCCIÓN : 

"fruit 1"

Código 2: 

Javascript

<script>
    // creating a function which will be the
    // prototype for the object to be created later
    function fruits() {
        this.name = 'fruit 1';
        this.season = 'summer';
    }
 
// creating a function to whose object
// will inherit properties from the  
// prototype using object.create() method
function apple() {
    fruits.call(this);
}
 
// creating an object of the apple function which
// will have properties of the prototype
// object i.e. fruits
apple.prototype
    = Object.create(fruits.prototype);
const app = new apple();
 
// Displaying the created object
console.log(app.name);
console.log(app.season);
< /script>

PRODUCCIÓN : 

"fruit 1"
"summer"

Excepciones:  

  • El método Object.create( ) lanza una excepción TypeError si el parámetro propertiesObject no es nulo.
  • El método Object.create( ) lanza una excepción TypeError si el parámetro propertiesObject no es un objeto primitivo.

Navegadores compatibles: 

  • Google Chrome 6.0 y superior
  • Internet Explorer 9.0 y superior
  • Mozilla 4.0 y superior
  • Ópera 11.1 y superior
  • Safari 5.0 y superior

Referencia: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create
 

Publicación traducida automáticamente

Artículo escrito por Shubrodeep Banerjee 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 *