WeakMap & WeakSet

What memory management benefit does this implementation provide?
const registry = new WeakMap();

class EventEmitter {
  constructor() {
    registry.set(this, new Set());
  }
  
  addEventListener(listener) {
    registry.get(this).add(listener);
  }
  
  removeEventListener(listener) {
    registry.get(this).delete(listener);
  }
  
  emit(event) {
    registry.get(this).forEach(listener => listener(event));
  }
}
Next Question (9/20)