Как сохранить ссылку на объект, когда я прокси-метод объекта?

#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 и возвращает текущий объект формата. Думал доверить геттеру, но затем вызов потерян, и я не могу получить доступ к этому.теги.