Не уверен, кто понял «правильно» в соответствии со спецификацией ECMA, но это не имеет большого значения, так как вы не можете сделать это во всех браузерах и должны изменить свой код:)
Простойобъяснение состоит в том, что function
s в if
операторах технически не разрешены, и браузеры делают странные вещи с ними.Некоторые браузеры рассматривают это как выражение, другие как объявление.Очевидно, FF рассматривает его как выражение, означающее, что он не существует, пока код не достигнет этой точки.Подробная информация доступна на http://kangax.github.com/nfe/