There are interface and semantic differences between the "class" and the "prototype".
Interface difference
How to use it in code. The difference and advantages are well explained in the article.
Semantic difference
Regardless of how it is implemented in javascript, we can use the ES6 class to emphasize that our object has a value of "class". Initially, "class" means that we can class ify some object to a particular set of objects. See Definition in Set Theory: https://en.wikipedia.org/wiki/Class_(set_theory) .
In addition, the class is something abstract and does not exist before we instantiate it.
If we are talking about class inheritance, just understand the abstraction that some class may be a subclass of another class that creates a hierarchy.
A prototype is a sample or a representative object from a certain set of objects. in this case, we create new objects using the existing prototype (create a clone or link). And they can also be prototypes for new facilities.
When other programmers read your code and see what you choose - a prototype or a class, they expect these meanings.
source share