Ce code fonctionne toujours, même dans différents navigateurs:
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();
Je n'ai cependant pas trouvé une seule référence pour expliquer pourquoi cela devrait fonctionner. J'ai vu cela pour la première fois dans la note de présentation de John Resig, mais cela n'a été que mentionné. Il n'y a aucune explication là-bas ni nulle part d'ailleurs.
Quelqu'un pourrait-il m'éclairer.