Функции, создающие объекты
Функция может и возвращать объект. Это удобно, когда вы создаёте много объектов одной формы: ключи пишутся только один раз, в функции, и у каждого созданного ею объекта одинаковые свойства.
function createBook(title, author) {
return {
title: title,
author: author,
available: true
};
}
const book = createBook("Матильда", "Роальд Даль");
console.log(book);{ title: "Матильда", author: "Роальд Даль", available: true }title: title может показаться странным. Слева от двоеточия — ключ, имя нового свойства. Справа — его значение: параметр title, в котором при этом вызове лежит "Матильда". Новая книга всегда доступна, поэтому available равно true у каждой книги, которую создаёт функция.
В чужом коде часто встречается более короткая запись: { title, author }. Если свойство должно называться так же, как переменная, в которой лежит его значение, имя можно написать один раз. { title, author } означает то же самое, что и { title: title, author: author }. Можно использовать любую запись.
Новый объект можно сразу положить в массив:
const library = [];
library.push(createBook("Матильда", "Роальд Даль"));
library.push(createBook("Момо", "Михаэль Энде"));
console.log(library);[{ title: "Матильда", author: "Роальд Даль", available: true }, { title: "Момо", author: "Михаэль Энде", available: true }]Частая ошибка — забыть return. Тогда функция возвращает undefined, и библиотека окажется такой: [undefined, undefined].
Задание
- 1
Допишите функцию
createProductтак, чтобы она возвращала объект со свойствамиnameиprice. Тогда программа должна вывести{ name: "Корм для птиц", price: 90 }. - 2
Ниже создайте константу
cartс пустым массивом. С помощьюpush()иcreateProduct()добавьте в неё два товара:"Лежанка для кошки"за400и"Игрушка для кошки"за35. Выведитеcart.