Запуск внутренней функции

244
28 сентября 2017, 16:23

Почему, не выводится alert если мы запускаем функцию extFunc()?

 function extFunc() {
     var a = 123;
     return function intFunc() {
     alert(a);
   }
 }
extFunc() // ----

Но alert выводится, если присвоить функцию переменной и запустить через эту переменную? Какие возможности открывает здесь присвоение функции переменной? Спасибо!

var newFunc = extFunc();
newFunc(); // 123
Answer 1

В первоначальном варианте extFunc возвращает функцию, но не вызывает ее. Во втором варианте вы помещаете функцию, которую вернула extFunc в переменную newFunc и затем вызываете ее. Первый вариант будет работать в таком виде

function extFunc() { 
     var a = 123; 
     return function intFunc() { 
     alert(a); 
   } 
 } 
extFunc()()

READ ALSO
Двумерный массив

Двумерный массив

Как в двумерный массив вставить числа по возрастанию в стоблце? То есть

338
input + knockout не ставит пробелы

input + knockout не ставит пробелы

Возникла проблема, делаю сайт с магазинами, есть функция добавления магазина в ней появляется много инпутов такого плана и с ними все в порядке...

242
Как не открывать всплывающее окно при условии, что

Как не открывать всплывающее окно при условии, что

Как не открывать всплывающее окно при условии, что файл в поле input type="file" не прикреплен?

214