Подтвердить что ты не робот

ES6: Как получить доступ к статическому получателю из экземпляра

Как я могу получить доступ к статическому getter из экземпляра класса, который реализует этот getter?

например, у меня есть этот класс:

class Component {
  static get isComponent() { return true; }

  constructor() {}
}

const c = new Component();

как я могу позвонить из "c" "isComponent" класса "Component"? Я читал, и все, что я нашел, это что-то вроде этого:

Object.getPrototypeOf(c).isComponent

но это не работает в моем случае, потому что в объекте прототипа Component нет метода isComponent. Вышеприведенный код работает, если я пишу класс следующим образом:

Component.prototype.isComponent = () => { return true; }

но это не так, как хотелось бы писать классы. Что мне не хватает? TNX

4b9b3361

Ответ 1

static становятся свойствами функции-конструктора, доступ к которой вы можете получить через экземпляр с помощью свойства constructor:

console.log(c.constructor.isComponent);

class Component {
  static get isComponent() { return true; }

  constructor() {}
}

const c = new Component();
console.log(c.constructor.isComponent); // true