Getter that overwrites itself with value

by JakobJingleheimer

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)