Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Создание объекта с помощью класса Object
Создать новый объект можно также с помощью класса Object
:
let car = new Object();
console.log( car ); // {}
car._model = 'ВАЗ-2109'; // Сохранили строку
car._year = 2007; // Сохранили число
car.getYear = function() { // Сохранили ссылку на функцию
return this._year;
};
// setter и getter
Object.defineProperty(car, 'model', {
set: function(name) {
this._model = name;
},
get: function() {
return this._model;
},
enumerable: true,
configurable: true
});
// Вывод значений
console.log( car._year) ; // 2007
console.log( car.getYear() ); // 2007
// setter и getter
car.model = 'БМВ';
console.log( car.model ); // БМВ
console.log( car._model ); // БМВ
console.log( car );
// { _model: 'БМВ', _year: 2007, getYear: [Function],
// model: [Getter/Setter] }
После создания объекта в переменной car
сохраняется ссылка на него. Используя точечную нотацию, можно добавить свойство (переменную внутри объекта). В качестве значения свойства может быть указан любой тип данных: число, строка, массив или другой объект. Если в качестве значения указать ссылку на функцию, то такое свойство становится методом объекта, внутри которого доступен указатель (this
) на текущий контекст.
Класс Object
является базовым классом для всех других классов в JavaScript, включая пользовательские классы. Все классы наследуют метод toString()
, который возвращает значение объекта в виде строки. Метод вызывается автоматически при использовании объекта в строковом контексте:
console.log( car.toString() ); // [object Object]
console.log( car + '' ); // [object Object]
Этот метод можно переопределить в пользовательском объекте:
let point = new Object();
point.x = 10;
point.y = 5;
point.toString = function() {
return `x: ${this.x}, y: ${this.y}`;
};
console.log( point.toString() ); // x: 10, y: 5
При создании объекта с помощью фигурных скобок неявным образом вызывается конструктор класса Object
. Поэтому эти две инструкции создания объектов эквиваленты:
let obj1 = { a: 1, b: 2 };
let obj2 = new Object({ a: 1, b: 2 });
console.log(obj1); // { a: 1, b: 2 }
console.log(obj2); // { a: 1, b: 2 }
Создать объект на основе другого объекта, поддерживающего итерации, позволяет статический метод fromEntries(<Итератор>)
из класса Object
. Каждый элемент такого объекта должен состоять из пары ключ/значение или из вложенного массива, содержащего два значения:
let arr = [ ['a', 1], ['b', 2] ];
let obj = Object.fromEntries(arr);
console.log(obj); // { a: 1, b: 2 }
let map = new Map();
map.set('c', 10);
map.set('d', 20);
obj = Object.fromEntries(map);
console.log(obj); // { c: 10, d: 20 }
Выполнить обратную процедуру позволяет метод entries()
:
let obj = { a: 1, b: 2 };
let arr = Object.entries(obj);
console.log(arr); // [ [ 'a', 1 ], [ 'b', 2 ] ]
Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов