Привет. Только пришел из Golanga в js. Притащил от туда я немножко))
вот функция
if (packages("init")){
imports([
"/js/src/supports/supports_html5.js"
],
function (){
init.test = function (){
alert('6');
}
init.testing = function (){
alert("testing");
}
alert(supports_html.LocalStorage());
}, err);
} else {
err("Пакет init уже создан");
}
Она импортирует
"/js/src/supports/supports_html5.js"
и выполняет его.
Пака он не выполниться блок
function (){
init.test = function (){
alert('6');
}
init.testing = function (){
alert("testing");
}
alert(supports_html.LocalStorage());
},
Не сработает.
ну и код supports_html
if (packages("supports_html")){
imports([],
function (){
supports_html.LocalStorage = function (){
try {
return 'localStorage' in window && window['localStorage'] !== null;
} catch (e) {
return false;
}
};
}, err);
} else {
err("Пакет supports_html уже создан");
}
Реализация очень проста.
Имею я два регистра. В 1 пишу все пакеты что уже импортировались ранее(дабы их не выполнять повторно), а во второй список пакетов, а при создании пакета проверяю нет ли конфликта имён.
Как по мне то код стал понятным, имеем понятный обработчик ошибок (функция err), все зависимости указаны явно и т.д.
Что думаете?)