Esse código sempre funciona, mesmo em diferentes navegadores:
function fooCheck() {
alert(internalFoo()); // We are using internalFoo() here...
return internalFoo(); // And here, even though it has not been defined...
function internalFoo() { return true; } //...until here!
}
fooCheck();
Não consegui encontrar uma única referência para o porquê de funcionar. Vi isso pela primeira vez na nota de apresentação de John Resig, mas foi mencionada apenas. Não há explicação lá ou em qualquer lugar para esse assunto.
Alguém poderia, por favor, esclarecer-me?