Вход

Просмотр полной версии : Вопрос по функциям


eirnvn
14.04.2013, 17:22
Добрый день,
подскажите, пожалуйста, эквивалентны ли записи:
function lol () {
function () {}
}

и

var lol = function (){}

megaupload
14.04.2013, 17:29
нет (http://learn.javascript.ru/function-declaration-expression)

eirnvn
14.04.2013, 17:47
спасибо, но там немножко не то

megaupload
15.04.2013, 12:24
var lol = function (){} доступно только ниже этой строчки)

а

function lol () { }

доступно и выще этой строчки

вся суть

tsigel
15.04.2013, 12:32
вся суть
Я бы не сказал что это вся суть, ещё важно применение этих различий для осуществления условий.

tsigel
15.04.2013, 12:34
http://learn.javascript.ru/functions-closures

rgl
15.04.2013, 12:35
for( i = 0; i < 2; ++i ) {
if( i )
lol(); // выше, но доступно
var lol = function() { alert( "Hello from function lol" ); }
}

tsigel
15.04.2013, 12:39
rgl,
Хитрый пример пример. Функция lol определилась при первом прохождении цикла (но не вызвалась), а при втором - она вызвалась, а затем переопределилась. Кэп.

Скобки решают :)


for( i = 0; i < 2; ++i ) {
if( i ) {
lol(); // выше, не доступно
var lol = function() { alert( "Hello from function lol" ); }
}
}