Что такое объект в JavaScript?

JavaScript разработан на основе простой объектно-ориентированной парадигмы. Объект — это набор свойств, а свойство — это связь между именем (или ключом) и значением.

1-Использование литерала объекта: -

Самый простой способ создать объект JavaScript — это литерал объекта, просто определите свойство и значения внутри фигурных скобок.

Пример литерала объекта: -

let car = {name: 'BMW', model:'BMW 3 Series', engine:937};

console.log(car.model)  //Output:'BMW 3 Series'

2-Использование конструктора объектов: -

Используя функцию конструктора объекта Object(), мы можем создать объект, используя ключевое слово new. Определение объекта можно передать в качестве аргумента конструктору объекта.

Пример конструктора объектов:-

function Car(name, model) {
        this.name = name;
        this.model = model;
    }

let myCar = new Car('Honda', 'Civic');
let yourCar = new Car('Ford','Figo')

console.log(myCar.name);  //Output: Honda
console.log(yourCar.name);  //Output: Ford

3-Использование классов ES6: -

ECMAScript 6 (более новая версия Javascript) поддерживает концепцию классов, как и любой другой статически типизированный или объектно-ориентированный язык. Таким образом, объект может быть создан из класса в Javascript.

Пример классов ES6:-

class Car {
  constructor(name, model) {
    this.name = name;
    this.model =  model;
  }
}

let myCar = new Car('Honda', 'Civic');
let yourCar = new Car('Ford','Figo');

console.log(myCar.name);    //Output: Honda
console.log(yourCar.model);   //Output: Figo

4-Использование Object.create(): -

Object.create() позволяет создавать объект с дополнительными параметрами атрибутов, такими как настраиваемый, перечисляемый, доступный для записи и значение.

Пример Object.create():

let Car = Object.create(Object.prototype,
  {
    name:{
      value: 'Ford',
      configurable: true,
      writable: true,
      enumerable: false
    },
    model:{
      value: 'Figo',
      configurable: true,
      writable: true,
      enumerable: true
    }
  });

console.log(Car.name) //Output: Ford

Что это за настраиваемые, записываемые, перечисляемые?

  • Доступно для записи: если false, значение свойства не может быть изменено.
  • Configurable: если false, любые попытки удалить свойство или изменить его атрибуты (Writable, Configurable или Enumerable) не увенчаются успехом.
  • Enumerable: если true, свойство будет повторяться, когда пользователь выполняет цикл for.

Попробуйте это, чтобы получить дополнительную информацию о доступных для записи, конфигурируемых, перечисляемых:

let car = {name: 'BMW', model:'BMW 3 Series', engine:937};

console.log(Object.getOwnPropertyDescriptors(car))