Что такое объект в JavaScript? В JavaScript все является объектом, кроме примитивных типов. Объект может иметь как состояние, так и поведение, включая свойства и методы. Допустим, мы только что купили новый дом, а на заднем дворе была куча странно выглядящих камней. Внезапно появляется почтовый голубь с запиской от наших северных соседей, что из-за смены времен года наступает конец света, и единственный способ остановить это - это камни на нашем заднем дворе! Однако это только определенные породы, это должно быть вулканическое стекло, иметь шкалу Мооса 6, и они немедленно тают лед. В консоль JavaScript!

Есть три способа создать объект в JavaScript. Первый - сделать объект буквальным.

var dragonGlass = {
  category: "volcanic glass",
  mohs: 6,
  ice_melting: true
}

Классика, а что еще мы могли сделать? Мы также можем создать экземпляр Object, используя ключевое слово new, а затем назначить свойства, используя точечную нотацию или нотацию в скобках. В чем разница между этими двумя? С помощью скобок мы можем назначать свойства, а также мы можем назначить переменную имени свойства, и JavaScript все равно ее примет. В точечной нотации вы можете использовать только явное имя свойства и только строковые типы.

var dragonGlass = new Object();
dragonGlass.category = "volcanic glass"
var rocksProp = "category"
console.log(dragonGlass[rocksProp]); // "volcanic glass"

Последний способ создания объекта - использовать конструктор, в котором вы можете начать делать много интересных вещей, например, назначать функции и определять область видимости.

var dragonGlass = function() {
  this.category = "volcanic glass";
  this.mohs = 6;
  this.ice_melting = true;
  this.destroy = function(white_walker) {
    return (white_walker + "has been destroyed. Nice.");
  }
}

Чтобы узнать больше об объектах, загляните в MDN, как можно ближе к Цитадели, насколько это возможно в этой жизни.