Getter that overwrites itself with value
JavaScript
const obj = {
get foo() {
console.log('getter');
Object.defineProperty(this, 'foo', { value: 'a' });
return this.foo;
}
};
console.log(obj.foo); // hits the getter
console.log(obj.foo); // hits the prop (and no 'getter' is logged)