В javascript нет классов.
Как вы упомянули, ваш первый пример был бы для объекта многократного использования, тогда как ваш второй пример только для объекта-одиночки.
Основным отличием здесь является то, что вы сразу вызываете эту функцию во втором примере, и она возвращает вам объект, тогда как вам нужно явно вызывать первую функцию каждый раз, используя что-то вроде a=new myView()
, это() это обеспечивает этот вызов.
Я использую ваш второй пример (известный как шаблон модуля Крокфорда) для задач, связанных с одной страницей, и первый пример для повторно используемых компонентов на этой странице (некоторые элементы генерируются много раз с помощью обработчиков и т. Д.)
Также прочитайте о наследовании прототипов, чтобы вы могли понять, как эффективно использовать первый пример для написания более эффективного кода JavaScript.