Разобраться действительно трудно, видимо Вы пришли из процедурного программирования в JS, а для реализации подобных систем обычно используют объекты, потому что они работают быстрее, чем отдельные функции, не надо тащить кучу аргументов из функции в функцию, и ещё много плюсов у этого подхода:
function Loader(){
// Описываем все нужные методы и свойства
this.queue=[]
this.clearqueue=function()[this.queue=[]}
this.loadScripts=function(array_of_scripts){ /* ... */ }
// и т.д.
}
//Создаём объект
var l=new Loader()
l.loadScripts(["/script_1.js","/script_2.js"])
Так же ознакомьтесь с шаблоном "Очередь" Queue