В class как мне получить доступ к закрытому полю его базового класса, скажем, #property?
class
#property
class Base { #property = '1.618' toString() { return Base.name } } class X extends Base { thisWorks() { return super.toString() } toString() { return super.#property // SyntaxError: Unexpected private field } } console.log(`${new X}`)
В ООП вы не можете получить доступ к private методу или свойству вне класса, даже если вы расширяете. Но вы можете получить доступ к protected методу родительского класса в дочернем классе.
private
protected
Это невозможно :
Это означает, что закрытые поля являются чисто внутренними: никакой код JS вне класса не может обнаружить или повлиять на существование, имя или значение любого частного поля экземпляров указанного класса без прямой проверки источника класса, если только класс не выберет раскрыть их. ( Это включает подклассы и суперклассы.)
Base должен был бы преднамеренно раскрыть свой #property другим способом, например, с помощью метода.
Base