Способы создания объектов в JavaScript

04.08.19

Способов создания объектов в JavaScript несколько. Тип данных Object играет важнейшую роль в JS. Объект является неупорядоченным набором пар "ключ - значение". Может содержать в себе другие объекты

1. Литеральная нотация

var someObject_1 = {};

Пожалуй самый распространенный и простой способ. Добавим свойства и методы

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

А теперь тоже самое, но свойства и методы зададим при создании

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

2. Конструктор Object

Данный способ не рекомендуется к применению, и лучше воспользоваться предыдущим. Тем не менее он существует. Но вероятность его встретить крайне мала

var someObject_2 = new Object();

Так же зададим свойства и методы

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

3. Функция конструктор

Мы можем написать свою функцию конструктор и создавать объекты с помощью оператора new

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

Создадим объект

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

4. Метод Object.create()

Есть еще один способ создания объектов — с помощью метода Object.create(). Он не поддерживается в < IE9. Первый параметр обязательный параметр — это прототип создаваемого объекта, и второй необязательный — список свойств объекта. Для того чтобы создать объект без прототипа, необходимо вызвать метод Object.create() c параметром null.

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. С помощью классов

Синтаксис ES6 предоставляет писать классы в JavaScript. По своей сути это является аналогом третьего способа - использование функции конструктора. Только с более простой и понятной записью

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

Создадим объект, а точнее экземпляр класса

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