Согласен с Ларисой, но немного дополню.
Классы, собственно, введены для любителей ООП, и действительно - только эмулируют в JS классическое ООП.
Нужны они для того, чтобы инкапсуллировать части кода, иметь возможности классового наследования и проч. Но нужно не забывать, что в JS используется наследование на прототипах и никакого другого в нем нет.
Если понять вышесказанное, то от классов в JS лучше отказаться, и использовать встроенные инструменты. Сразу скажу единственный минус, который я не смог чисто обойти - отсутствие множественного наследования.
Итак, инкапсулляцию лучше всего делать, размещая все функции отдельного блока кода не в классе, а в качестве методов объекта.
var obj1= {
prop1: value,
met1: function(arguments) {
body
}
// etc
}
При таком подходе мы имеем в глобальном скопе лишь одну переменную, но можем вполне использовать весь ее потенциал, как:
obj1.met1();
И зачем нам нужны классы при таком подходе?
Если нам нужно унаследовать от другого объекта, самым простым способом будет разместить ссылку на родительский объект в свойстве __proto__ наследника.
var parent= {...};
var child= {
__proto__: parent,
.....
}