Пытаюсь динамически подгрузить javascript
:
$(document).ready( function(){
      ZSite.lib.dynamicLoadScript('test.js');  
      ZSite.lib.dynamicLoadCode('test.init();');  
}
ZSite.lib.dynamicLoadScript = function(url)
{
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
   document.getElementsByTagName("head")[0].appendChild(e);   
}
ZSite.lib.dynamicLoadCode = function(code)
{
   var e = document.createElement("script");
   e.type="text/javascript";
   e.innerHTML=code;
   document.getElementsByTagName("head")[0].appendChild(e);   
}
код из test.js и test.init() выполняются, но  при выполнении test.init() вываливается ошибка что мол объект test не найден. Как так?
содержимое test.js :
test = {
        init: function()
        {
          alert('works!');
            } 
    }
Как правильнее подгрузить динамически js и выполнить метод из него?