Не существует «лучшего» пути.В JavaScript есть несколько шаблонов ООП, и тот, который вы упомянули, является одним из них (и также популярным).По сути, это прототипный (или псевдоклассический) шаблон с замыканием для инкапсуляции частных статических переменных на основе классов.
Существуют другие шаблоны (например, функциональный шаблон, рекомендованный Дугласом Крокфордом).
Я лично рекомендую псевдоклассический шаблон (хотя, какой шаблон является лучшим, это горячая дискуссия).
Если вы выполняете ООП с JavaScript, я настоятельно рекомендую вам взглянуть напринятие библиотеки JavaScript со встроенным ООП, такой как Dojo Toolkit или Closure Library .Другие библиотеки (например, jQuery, MOOtools, Ext и т. Д.) Имеют модули ООП и / или плагины.
или
Хотя в JavaScript нет классов, естьконструкторы и прототипы.Эти понятия пригодятся, когда у вас есть несколько похожих объектов (например, пользователи, содержащиеся в списке пользователей).В вашем примере кода используются обе эти концепции.Используя такие имена, как myclass, трудно сказать, что вы пытаетесь смоделировать.Вот пример конструктора User и расширение его прототипа:
var User = function (name) {
this.name = name;
};
User.prototype.sayHello = function () {
return "Hello, my name is " + this.name;
};