Функция JavaScript не определена в Firefox? - PullRequest
13 голосов
/ 11 января 2012

В настоящее время я отлаживаю следующий уровень моего веб-сайта в Firefox и обнаружил действительно странную ошибку в моем JavaScript. Правда ли, в Firefox, что функции должны быть определены выше любых строк кода, ссылающихся на эти функции? Это кажется мне действительно странным.

Вот упрощенная версия того, что вызывало ошибки:

var myClass = new MyClass(myCallback);

function myCallback() {
    // code
}

Вышел следующий баг: Error: myCallback is not defined

И вот что мне нужно было сделать, чтобы он работал в Firefox:

var myCallback = function() {
    // code
}

var myClass = new MyClass(myCallback);

Итак, мой вопрос: Это нормальное поведение или что-то еще происходит? Я имею в виду, нужно ли это учитывать при кодировании в будущем?

1 Ответ

13 голосов
/ 11 января 2012

Вы должны определить функцию перед ее вызовом, когда вы инициируете с форматом:

myCallback = function() {
    // code
}

Но это должно быть нормально, чтобы определить где угодно, когда вы инициируете с форматом:

function myCallback() {
    // code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...