Что такое объект в 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))