Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Chrome и Mozilla порядок чтения скрипта (https://javascript.ru/forum/misc/57895-chrome-i-mozilla-poryadok-chteniya-skripta.html)

Siend 25.08.2015 15:57

Chrome и Mozilla порядок чтения скрипта
 
Ребят, подскажите плиз как решается данный косяк:

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

Цитата:

Сообщение от Siend
Не понял... а вызывать ее как?

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

Цитата:

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


Часовой пояс GMT +3, время: 05:44.