Checkout this video:
OOJS generally falls into two categories: prototype-based programming and class-based programming. The former uses a “prototypal” inheritance model, while the latter uses a “classical” inheritance model. Both approaches have their pros and cons, but prototype-based programming is generally more flexible and easier to work with.
-It helps you keep your code organized.
-It makes your code more reusable.
-It makes your code more maintainable.
-It helps you avoid naming collisions.
There are some workarounds that allow for the creation of pseudo-classes and objects, but these are not the same as true OOP. These workarounds can often lead to code that is difficult to understand and maintain.