Кстати, еще одна интересная особенность функции заключается в том, что она может не только принимать другую функцию в качестве параметра, но и возвращать функцию при помощи все того же оператора return: function func1( ) { var a = 10; return function( ) { return a + 100; } } var f = func1( ); console.log(f( )) // выведется 110 Здесь объявлена функция func1, внутри которой объявлена переменная a. Соответственно, переменная a является частью области видимости функции func1. Далее, func1 возвращает другую функцию, задача которой - сложить значение переменной a со значением 100. За пределами func1 создается переменная f, в которую присваивается результат вызова функции func1. Напомню, что результатом функции func1 является другая функция, задача которой - сложить значение переменной a со значением 100. После объявления переменной f и присвоения ей результата вызова func1, происходит вызов функции f и вывод результат на экран. Посмотрите внимательн