Методы, объявленные внутри class имеют ряд особенностей:
Методы являются именно методами, то есть имеет доступ к super и this.
Все методы класса работают в режиме use strict, даже если он не указан.
Все методы класса не перечислимы. То есть в цикле for..in по объекту их не будет.
В классах, как и в обычных объектах, можно объявлять геттеры и сеттеры через get/set, а также использовать [field] для свойств с вычисляемыми именами.
В теле класса нельзя описать его поля, только в конструкторе. Дело в том, что определения в теле класса попадают в его прототип, а там должны быть только функции.
Можно объявлять статические функции классов, используя ключевое слово static.
Class Constructor
Псевдо-функция constructor соответствует поведению функции-конструктора из ES5:
Функция constructor запускается при создании объекта при помощи new.
Если конструктор не указан, то используется пустая функция.
Как и в обычных конструкторах, this в теле конструктора ссылается на создаваемый объект.
Можно подменить возвращаемое значение, указав явное значение return.
Static Functions
Метод, объявленный с ключевым словом static объявляется на самой функции конструкторе, а не на прототипе.
Классы не могут иметь полей или статических данных в своем объявлении, но их можно добавить после определения, либо использовать функции-геттеры.