Teoretycznie tak. Możesz przekazać do funkcji dane bez jej wywołania.
Pierwszy sposób to poprzez dodania pola do obiektu funkcji:
(function(){
'use strict';
function app()
{
console.log(app.data);
}
app.data = "secret";
app();
})();
Drugi sposób to powiązanie kontekstu funkcji z obiektem poprzez bind.
(function(){
'use strict';
function show()
{
console.log(this.data);
}
var secret = {
data : 32
};
var foo = show.bind(secret);
foo();
})();