Помогите с Java Script, легкое
const newPost = (post, addedAt = Date()) => {
...post,
addedAt,
return post
}
const postOne = {
id: 1,
author: 'rofler2005'
}
newPost(postOne)
ошибка
declaration or statement expected.
почему? если я ставлю круглые скобки вместе с фигурными в функции, то все нормально, но если я хочу вернуть с помощью return, как поступить?
Ответы (1 шт):
как поступить?
Если хотите вернуть объект, при этом в стрелочной функции, то надо оборачивать в круглые скобочки. При этом никакие return post
уже не нужно, т.к. при конструкции => ({ })
уже будет применён return
.
Почему в данном случае нужны круглы скобки? Потому что возвращается объект, который обычно обозначается через фигурные скобки, но и в стрелочных функциях фигурные скобки означают, что будет тело функции и потом возврат значения через return
. Получается конфликт парсинга. Не ясно к чему относятся фигурные скобки. Чтобы интерпретатор мог однозначно понять, что это именно возврат объекта, а не скобки, которые относятся к телу функции - люди, через лайфхак, оборачивают этот объект в круглые скобки. Они ни на что не влияют, только дают пониманию интерпретатору, что это уже не фигурные скобки функции, а что-то другое.
Либо можно писать понятнее для интерпретатора, т.е.:
=> {
return {
...post,
addedAt,
}
}