Formas de crear objetos en JavaScript

04.08.19

Hay varias formas de crear objetos en JavaScript. El tipo de datos Object juega un papel crítico en JS. Un objeto es un conjunto desordenado de pares clave-valor. Puede contener otros objetos.

1. Notación literal

var someObject_1 = {};

Quizás la forma más común y fácil. Agreguemos propiedades y métodos

someObject_1.name = "John";
someObject_1.age = 25;
someObject_1.run = function(){
    console.log("run")
}

Y ahora es lo mismo, pero estableceremos propiedades y métodos al crear

var someObject_1 = {
    name: "John",
    age: 25,
    run: function(){
        console.log("run");
    }
};

2. Constructor de objetos

No se recomienda usar este método, y es mejor usar el anterior. Sin embargo, existe. Pero la probabilidad de conocerlo es extremadamente pequeña.

var someObject_2 = new Object();

También establecemos propiedades y métodos.

var someObject_2 = {
    name: "Nick",
    age: 30,
    jump: function(){
        console.log("jump");
    }
};

3. Constructor de funciones

Podemos escribir nuestra función de constructor y crear objetos usando el nuevo operador

function SomeObject_3(name, age){
    this.name = name;
    this.age = age;
}
 
SomeObject_3.prototype.run = function(){
    console.log("run");
}

Crear un objeto

var someObject_3 = new SomeObject_3("Alex", 20);

4. Método Object.create()

Hay otra forma de crear objetos: usar el método Object.create(). No es compatible con <IE9. El primer parámetro, el parámetro requerido, es el prototipo del objeto creado, y el segundo parámetro opcional es la lista de propiedades del objeto. Para crear un objeto sin un prototipo, debe llamar al método Object.create() con el parámetro nulo.

var someObject_4 = Object.create(Object.prototype);
 
// the full analogue of Object.create (Object.prototype) is
var someObject_4 = {};
 
//object without prototype
var someObject_4 = Object.create(null);

5. Usando clases

La sintaxis de ES6 proporciona clases de escritura en JavaScript. En esencia, este es un análogo del tercer método: usar la función de constructor. Solo con un registro más simple y claro

class SomeObject_4{
     
    constructor(name, age){
        this.name = name;
        this.age = age;
    }
 
    run(){
        console.log("run");
    }
}

Creemos un objeto, o más bien una instancia de la clase

let someObject_4 = new SomeObject_4("Alex", 20);
blog comments powered by Disqus