Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос по функциям (https://javascript.ru/forum/misc/37295-vopros-po-funkciyam.html)

eirnvn 14.04.2013 17:22

Вопрос по функциям
 
Добрый день,
подскажите, пожалуйста, эквивалентны ли записи:
function lol () {
function () {}
}

и

var lol = function (){}

megaupload 14.04.2013 17:29

нет

eirnvn 14.04.2013 17:47

спасибо, но там немножко не то

megaupload 15.04.2013 12:24

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

а

function lol () { }

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

вся суть

tsigel 15.04.2013 12:32

Цитата:

Сообщение от megaupload
вся суть

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

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" ); }
  }
}


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