Я пытаюсь понять, как работает этот шаблон JavaScript, это целая библиотека, заключенная в скобки. Насколько я понимаю, скобки - это способ определения области переменных, но внутри есть единственная функция, которая принимает аргумент (глобальный, фабричный).
Я пытался найти, как работает этот шаблон, но ничего не могу найти.
Тело кода возвращает объект, который можно использовать в другом месте, но я не понимаю, для чего предназначены аргументы global
и factory
.
Я читал о вложениях и анонимных функциях, но не могу найти ничего о вложении, определенном следующим образом.
(function (global, factory) {
global.className = factory();
} (this, function () {
ObjectName.prototype = function() {
/* some code */
}
var data = {
getUsefulData: function(obj) {
return new ObjectName(obj, 'usefuldata');
}
}
return data;
})
);
Вопросы:
- что будет, если внешняя функция не имеет аргументов?
- какое значение здесь присваивается глобальным переменным и переменным?