JavaScript, как и почти любой язык программирования, позволяет использовать функции. Более подробно об этом вы можете почитать здесь, а в этой статье я расскажу о загадочных лямбда-функциях.
Специалисты всех направлений почему-то любят придумывать слова, понятные только им. Видимо, так они хотя выделиться из толпы. Вот и “ботают по фене” с большой охотой. Лично я этого не люблю и всегда стремлюсь к тому, чтобы люди меня понимали. Хотя это не всегда получается. Нередко вроде говоришь по-русски, и стараешься быть понятным, а тебя просто не слушают. Ну да ладно, хватит лирики…
В JavaScript переменные могут быть не только числами, строками или объектами, но и функциями. То есть иметь функциональный тип. Такая переменная называется функциональным литералом. Пример:
var kub = function(x) { return x*x*x; }
alert(kub(3));
Ну а теперь обещанное - функции, определяемые таким образом, иногда называют лямбда-функциями. Это повелось от языка LISP, который одним из первых допускал вставку неименованных функций в виде литералов в программу. Хотя, честно говоря, мне за всю свою программистскую жизнь не встречались ситуации, где бы такое использование функций было жизненно необходимо. Но бывалые говорят, что в некоторых случаях это удобно. Что же, поверим им на слово.
Однако здесь можно столкнуться с неожиданностями. Например, если вы забудете скобки и сделаете так:
alert(kub);
то это не будет ошибкой. Однако на экране вы увидите:
То есть будет выведен не результат работы функции, а значение переменной kub, в которой хранится определение лямбда-функции.
Поскольку это переменная функционального типа, то вы, разумеется, можете использовать её как переменную. Например, присвоить её значение другой переменной:
var xxx = kub;
alert(xxx(3));
И это тоже будет работать.
Для любителей поизвращаться JavaScript предоставляет ещё один способ объявления функции: можно передать список аргументов и тело функции в виде строк в конструктор Function(). Например:
var cube = new Function('x', 'return x*x*x;');
alert(cube(5));
И это тоже будет работать.
На этом на сегодня всё. Подписывайтесь на канал, чтобы ничего не пропустить…