51 lines
1.8 KiB
JavaScript
51 lines
1.8 KiB
JavaScript
/** ЗАДАЧА 53 - Сокращенное написание свойств объектов
|
||
*
|
||
* 1. Исправьте все ошибки в коде.
|
||
*
|
||
* 2. Измените объект, возвращаемый функцией "photosGallery", используя:
|
||
* - Сокращенные имена свойств
|
||
* - Сокращенные имена методов
|
||
* - Также нужно изменить одно свойство объекта
|
||
* и сделать его вычисляемым свойством
|
||
*
|
||
* 3. Сообщения в консоли должны быть точно такими же,
|
||
* как и в конце этой задачи
|
||
*/
|
||
|
||
const photosGallery = (title, dimensions, date) => {
|
||
return {
|
||
title,
|
||
date,
|
||
[dimensions]: true,
|
||
info() {
|
||
console.log(`Фото "${title}" имеет разрешение ${dimensions}`)
|
||
},
|
||
publishInfo() {
|
||
console.log(
|
||
`Фото "${title}" было опубликовано ${Math.floor(
|
||
(new Date().getTime() - date.getTime()) / 1000
|
||
)} секунды назад`
|
||
)
|
||
},
|
||
}
|
||
}
|
||
|
||
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
|
||
|
||
// console.log(Object.keys(myDogPhoto))
|