How can i access a static getter from an instance of the class that implements that getter?
for example, i have this class:
class Component {
static get isComponent() { return true; }
constructor() {}
}
const c = new Component();
how can i call from "c" "isComponent" of "Component" class? I read around and all I found is something like that:
Object.getPrototypeOf(c).isComponent
but this is not working on my case because there is no "isComponent" method in Component prototype object. The above code works if I write the class like this:
Component.prototype.isComponent = () => { return true; }
but this is not the way i would like to write classes. What am I missing? tnx
statics become properties of the constructor function, which you can access on an instance via theconstructorproperty:Of course, that relies on
constructornot having been mucked with. :-) Before theclasssyntax, you'd see people forgetting to setconstructorproperly in inheritance hierarchies all the time. Thankfully, withclasssyntax, it's handled automatically so people forgetting is no longer an issue.In theory, the instance may have an "own"
constructorproperty, shadowing the one on the prototype. So if that's a concern, you could go to the prototype:Alternatively, if you know what constructor it is, you can go direct to the source:
...but only if you know in advance that
Componentis the constructor you want.