Object Descriptors & Property Flags

Why is the 'observers' property defined with a getter that returns a copy?
function Observable() {
  const observers = [];
  
  Object.defineProperty(this, 'observers', {
    get() { return [...observers]; }
  });
  
  this.addObserver = function(observer) {
    observers.push(observer);
  };
  
  this.notifyAll = function(data) {
    observers.forEach(observer => observer(data));
  };
}
Next Question (22/40)