Я ищу способ иметь common.js, если хотите, с некоторыми функциями, которые будут использоваться в других js-скриптах ниже по иерархии .
Обычно я делаю это, просто объявив такую функцию: function x(){...}
для последующего вызова из некоторого другого js . Однако я столкнулся с некоторыми проблемами с этим подходом, когда попытался проанализировать и собрать все мои файлы .js с помощью Uglifyjs. После некоторых исследований я узнал некоторые преимущества использования модулей javascript
чтобы решить мою проблему, а также стремиться к лучшей практике.
Я нашел довольно аккуратное решение, используя модули здесь:
Javascript: лучший способ объявить функции, которые будут использоваться глобально?
Код соответствует моим потребностям:
Раздел модулей не определен должным образом ... вот немного приведенный в порядок пример.
window.MainModule = (function($, win, doc, undefined) {
var modules = {};
// -- Create as many modules as you need ...
modules["alerter"] = (function(x,y){
var someFunction = function(){ alert(xy); };
return {
init: someFunction
};
}());
modules["alerter2"] = (function(){
var someFunction = function(){ alert('I alert second'); };
return {
init: someFunction
};
}());
return {
init: function(key){
modules[key].init();
}
};
}(jQuery, this, document));
$(window.MainModule.init['alerter']);
Проблема, с которой мне нужна помощь, заключается в том, что я хочу инициализировать module['alerter']
и предоставить аргументы функции
modules["alerter"] = (function(x,y){
var someFunction = function(){ alert(xy); };
return {
init: someFunction
};
}());
с использованием $(window.MainModule.init['alerter'])
.
Я пытался быть конкретным в области, которая является довольно новой для меня. Конечно, я благодарен за вашу помощь.