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

Способов создания объектов в 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);

//полный аналогом Object.create(Object.prototype) является
var someObject_4 = {};

//объект без прототипа
var someObject_4 = Object.create(null);

5. С помощью классов

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

class SomeObject_4{
	
	constructor(name, age){
		this.name = name;
		this.age = age;
	}

	run = function(){
		console.log("run");
	}
	
}

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

let someObject_4 = new SomeObject_4("Alex", 20);
Share: