Это javascript module pattern. Эффективно вы создаете инкапсуляцию, в котором вы можете хранить функции (государственные, частные), переменные и другие модули. С этой моделью вы не загрязняете глобальную. Его можно использовать для имитации пакетов java, пространств имен .NET.
Например, я разделил свой проект на следующие пространства имен, используя этот шаблон.
- ProjectName
- ProjectName.helpers
- ProjectName.services
- ProjectName.events
Каждый пространство имен имеет свои функции, поэтому они не смешиваются. Я могу использовать одно и то же имя функции в разных пространствах имен. Вы можете писать частные функции, которые можно использовать только из одного модуля, недоступного для публики. Это один из способов добавления объектно-ориентированных принципов в javascript.
Я был особенно обеспокоен '(someVar || (someVar = {})' –
Это похоже на простое значение по умолчанию. –
'someVar || (someVar = {}' также может быть 'someVar || {} ' – KooiInc