#javascript #proxy
#язык JavaScript #полномочие
Вопрос:
const availableTags = ['div', 'h1', 'p', 'span']; function tagsCollector() { this.tags = []; this.addTag = function(tag) { this.tags.push(tag); } } class Format { constructor() { this.tags = new tagsCollector(); } } availableTags.forEach(tag =gt; { Object.defineProperty(Format.prototype, tag, { value: new Proxy(text =gt; { return ` lt;${tag}gt; lt;${this.tags.reduceRight((html, curtag) =gt; { return `lt;${curtag}gt;${html}lt;/${curtag}gt;`; }, text)} lt;/${tag}gt; ` }, { get: (_, props) =gt; { this.tags.addTag(tag); return this; }}) }) })
Проблема заключается в форматировании HTML, связанного с полем, из codewars. Нам нужно реализовать шаблон интерфейса fluent типа Format.div.p («текст»). Для каждого тега я создаю геттер, который помещает тег тега в tagCollector и возвращает текущий объект формата. Думал доверить геттеру, но затем вызов потерян, и я не могу получить доступ к этому.теги.