Ничего.
JavaScript изначально не имело концепции класса, для OOP в JavaScript был реализован подход на основе прототипов.
Начиная с ESX (не могу вспомнить точно), была представлена концепция класса, по сути, заключающая синтаксис на основе прототипов в более популярный синтаксис на основе классов, который разработчики обычно используют на разных языках.
I Я бы рекомендовал использовать новый синтаксис, поскольку он в целом более читабелен и (по крайней мере, для меня) имеет больше смысла при работе с объектами в JavaScript.
JavaScript реализовал аналогичную концепцию при использовании async / await, оборачивая старый Promise.resolve|.reject
API синхронного восприятия, JavaScript полон синтаксического сахара и хитрых обходных путей для обеспечения поддержки, аналогичной другим языкам.