pboris7
Новичок
Дата регистрации:
26.06.2012 09:51:33
Сообщений: 8
Приступил к ознакомлению JS, в принципе все ясно. Но вот что опять смутило. Приведу пример, чтоб было понятно (пример взят с этого же сайта из объяснений Михаила):
setTimeout(func, 3000);
function func () {
alert("Прошло 3 секунды"
![](/images/smiles/sm3.png)
;
}
Вопрос:
- Тут описание функции идет после ее вызова в теле setTimeout. Разве так правильно? К тому же был очень удивлен когда после перемены местами setTimeout и function func (), код все равно был выполнен. В С++ вызов функции всегда идет после ее описания, а что в JS очередность не имеет значения?
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Функции - это отдельные блоки кода в JS, которые не имеют никакого отношения к другим частям кода.
pboris7
Новичок
Дата регистрации:
26.06.2012 09:51:33
Сообщений: 8
Михаил, о том что функции - это отдельные блоки совершенно понятно и речи об этом не идет. Мой вопрос был в очередности следования объявления и вызова функции. Уверен что Вы знакомы с С++ и там, Вы знаете, что в коде требуется сначала объявить(описать) функцию и лишь потом ее вызвать/применить в коде. Мой вопрос был в том, должен ли быть применен этот же подход в JS или в нем описанная очередность такого значения не имеет?
Поэтому привожу еще одно Ваше предупреждение взятое из Вашего курса:
"ВНИМАНИЕ: Необходимо соблюдать очень важное правило: нельзя обращаться к тому, чего ещё не существует. Какой вывод из этого можно сделать? Очень простой: пока не создано изображение, его нельзя обрабатывать. То есть Вы не можете запустить приведённый здесь скрипт ДО того, как появилось изображение. На это очень часто напарываются новички, поэтому не забывайте, что прежде чем работать с чем-либо, необходимо для начала это создать."
И здесь четко указывается на то что следует соблюдать определенную очередность при написании скрипта. Но в последнем случае это относилось к изображению. И мой вопрос был аналогичного характера но только применительно к функциям. Думаю, я смог объяснить суть своего вопроса.
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Функции не имеют никакой очерёдности и их можно создавать в любой момент. А вот элементы, все переменные, к которым обращаются, должны иметь чёткую последовательность.