Ten kod zawsze działa, nawet w różnych przeglądarkach:
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();
Nie mogłem jednak znaleźć ani jednej wzmianki o tym, dlaczego to powinno działać. Po raz pierwszy zobaczyłem to w notatce prezentacyjnej Johna Resiga, ale zostało tylko wspomniane. Nie ma żadnego wyjaśnienia tej sprawy.
Czy ktoś mógłby mnie oświecić?