@Vadim1899

Есть ли подобная структура в js?

Привет!
Подскажите, есть ли в js такая структура или тип данных, чтобы можно было реализовать следующее:

Есть переменная ROUTES и 4 "основных" раздела - home, profile, blog, page
При обращении к ROUTES.blog, возвращается строка по типу "section-blog". ROUTES.profile возвращает "section-profile" и тд.

Но у разделов есть еще и подразделы, например у blog есть подраздел art.
Соответственно можно обратиться к ROUTES.blog.art, которое вернет строку "page-art"

Можно ли такое сделать средствами js?
Первое что приходит в голову - объект, например такого вида:
const ROUTES = {
    blog: {
        art: 'page-art'
        ...
    },
    profile: {
        user: 'page-user',
        edit: 'page-edit',
    },
    home: { ... }
    ...
}


но в таком случае ROUTES.blog будет возвращать не строку 'section-blog', а объект ROUTES.blog
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Нет. Тип значения которое уже было возвращено всегда конкретен. Либо это строка, либо это объект.
Можно возвращать объект с методом toString который будет возвращать нужной строку при приведении к строке, но это не равносильно возвращению самой строки.
const ROUTES = {
  blog: {
    art: 'page-art',
    toString() {
      return 'section-blog'
    }
  }
}
ROUTES.blog.art // page-art
ROUTES.blog // object
'text: ' + ROUTES.blog // text: section-blog

Также можно попытаться накостылять магию с прототипом String, но это только в качестве развлечения, на проде за такое руки оторвут.)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы