Niczym ;)
A mówiąc dokładnie: składnia klas została dodana w standardzie ECMAScript 6 jako tzw. syntax sugar (cukier składniowy). To po prostu ładniejszy sposób zapisu konstruktorów:
class Point {
constructor( x, y ) {
this.x = x;
this.y = y;
}
method1() {
return 1;
}
}
// to to samo, co
function Point( x, y ) {
this.x = x;
this.y = y;
}
Point.prototype.method1 = function() {
return 1;
}
Jedyna różnica jest taka, że w klasach łatwiej zrobić dziedziczenie, w tym dziedziczenie wbudowanych klas (Array, Promise itd).
Więcej: http://exploringjs.com/es6/ch_first-steps.html#_from-constructors-to-classes