Вход

Просмотр полной версии : Chrome и Mozilla порядок чтения скрипта


Siend
25.08.2015, 15:57
Ребят, подскажите плиз как решается данный косяк:

Init()
function Init (){
...
}

Хром спокойно выполняет, мозила же выдает ошибку, мол функция Init не определена. Приходится все менять местами, и только такую последовательность мазила обрабатывает нормально:

function Init (){
...
}
Init()

Из-за чего такое вообще происходит и есть ли простой способ решения проблемы? (Не меняя порядок определения и вызова функций)

tsigel
25.08.2015, 16:00
Siend,
Есть! Используйте var f = function () {...}, тогда поведение браузеров будет одинаковое.

Siend
25.08.2015, 16:06
Не понял... а вызывать ее как?

И если скажем:

Init()
function Init(){
A()
B()
}

function A(){...}
function B(){...}

то в этом случае как? Т.к. мазила затребует такой вот порядок:

function A(){...}
function B(){...}
function Init(){
A()
B()
}
Init()

И при большей вложенности вообще кошмар же будет...

tsigel
25.08.2015, 16:11
Не понял... а вызывать ее как?

var f = function () {
alert('f');
};
f();

tsigel
25.08.2015, 16:12
https://learn.javascript.ru/function-basics

Siend
25.08.2015, 16:15
Ок, спасибо)

tsigel
25.08.2015, 16:27
Rise,
Не-не и правда была такая тема в фф.

Erolast
25.08.2015, 20:09
мазила затребует такой вот порядок:
Не затребует. По стандарту объявления функций поднимаются над остальным кодом.
Покажи код (содержание самих функцих не надо).