Я ручаюсь за Эндрю Хара и Мариуса. Это все о возможности изменить то, что может делать класс, изменяя его во время выполнения. Классическая ООП не позволяет вам этого делать, вы должны точно указать, что может делать класс / объект и какие свойства данных он имеет перед компиляцией или перед интерпретацией (если интерпретируемый язык).
Код, который вы предоставили, функционально идентичен, но это только потому, что вы не воспользовались прототипами в JS.