Javascript inserción dinámica múltiple

Cuando hacemos inserción dinámica para javascript, a veces el orden importa. A veces resolvemos esto usando la propiedad onload; sin embargo, si hay muchos javascripts externos y esos scripts deben cargarse en orden, ¿qué debemos hacer?

Resolví este problema mediante funciones de carga definidas recursivamente; sin embargo, no estoy tan seguro acerca de la eficiencia ... ya que este es un script, creo que evalúa de manera diferida ... ¿Alguna ayud

//recursively create external javascript loading chain
//cautiously add url list according to the loading order
//this function takes a list of urls of external javascript
function loadScript(url) {
  if( url.length == 0) {
    //final function to execute
    return FUNCTION;
  }

  var f = function(){
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = url.pop();

    //recursion
    script.onload = loadScript(url) ;
    document.getElementsByTagName("head")[0].appendChild(script);
  }
  return f;
}

function loadScripts(urls) {
  var script = document.createElement("script");
  script.type = "text/javascript";
  script.src = urls.pop();
  script.onload = loadScript(urls) ;
  document.getElementsByTagName("head")[0];.appendChild(script);
}

loadScripts(["aaa.js","bbb.js","ccc.js"]);

¡Gracias

-lo siento por confundirte .. Agregué una función que en realidad llama a loadScript (). (Verifiqué que esto funciona ..)