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
Ответы
Ответ 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