JS_HOME_WORK/53-enhanced-object-literals/start.js
2025-01-17 01:00:07 +01:00

55 lines
1.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/** ЗАДАЧА 53 - Сокращенное написание свойств объектов
*
* 1. Исправьте все ошибки в коде.
*
* 2. Измените объект, возвращаемый функцией "photosGallery", используя:
* - Сокращенные имена свойств
* - Сокращенные имена методов
* - Также нужно изменить одно свойство объекта
* и сделать его вычисляемым свойством
*
* 3. Сообщения в консоли должны быть точно такими же,
* как и в конце этой задачи
*/
const photosGallery = (title, dimensions, date) => {
return {
title: title,
info: function() {
console.log(
"Фото "${title}" имеет разрешение ${date}`
);
},
dimensions: dimensions
publishInfo: () => {
console.log(
`Фото было опубликовано ${Math.floor(
(new Date().getTime() - date.getTime()) / 1000
)} секунды назад`
);
,
date: date
}
}
const myDogPhoto = photosGallery(
"My dog",
"1920x1080",
new Date()
)
const testDimension1 = "1920x1080"
const testDimension2 = "1080x720"
myDogPhoto.info()
/* Фото "My dog" имеет разрешение 1920x1080 */
setTimeout(() => myDogPhoto.publishInfo(), 2000)
/* Фото "My dog" было опубликовано 2 секунды назад */
/* ВОПРОС: Почему метод "publishInfo" все еще имеет доступ
к параметрам функции "photosGallery" (например "date")? */
console.log(myDogPhoto[testDimension1]) // true
console.log(myDogPhoto[testDimension2]) // undefined