@rd100

Как вызвать цепочку ключей в объекте, как функции с возвратом результата в предыдущий ключ?

Есть объект Format и он должен отдавать такие результаты.
Как это сделать?
До этого видел только такие записи Format.div().h1(), где функция вызывается после функции, а тут вызов функции только на последнем ключе в цепочке и как последний ключ возвращает свой результат в предыдущий вызов div?
Format.div("foo"); // returns "<div>foo</div>"
Format.div.h1("FooBar");// "<div><h1>FooBar</h1><div>"
  • Вопрос задан
  • 207 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const Format = (function createFormat(tags) {
  return new Proxy(
    (...content) => tags.reduceRight((acc, n) => `<${n}>${acc}</${n}>`, content.join('')),
    { get: (target, key) => createFormat([ ...tags, key ]) }
  );
})([]);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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