В этот пост включены некоторые из моих заметок из первых трех глав книги Секреты Javascript Ninja, соавтором которой является создатель библиотеки JQuery Джон Ресиг.

Первая часть книги посвящена функциональной природе Javascript, и в этой статье я буду обсуждать возможности функций.

Зачем использовать функциональный язык?

В Javascript функция - это «основная модульная единица выполнения». Этот язык использовался в основном как язык сценариев браузера. Следовательно, наличие «универсальных и мощных функций» дает нам высокий уровень гибкости с точки зрения написания кода.

Функции в Javascript считаются первоклассными объектами, потому что они обладают следующими возможностями:

Может быть создано с помощью литералов, например

Может быть присвоено переменным, элементам массива и свойствам других объектов, например

Может передаваться в качестве аргументов функциям, например

Могут быть возвращены как значения из других функций, например

Может обладать свойствами, которые можно динамически создавать и присваивать, например

В нефункциональных объектно-ориентированных языках методы не могут завершиться сами по себе и не могут быть переданы в качестве аргументов другим методам. Они должны быть объявлены как члены объекта. Хотя C ++ и Java в последние годы разработали концепцию лямбда-функций, которые аналогичны анонимным функциям Javascript.

Анонимные функции используются в веб-программировании, чтобы не загрязнять глобальное пространство имен. Лучше создать множество маленьких функций и передать их другим функциям.

Таким образом, в этом посте на примерах я смог продемонстрировать мощь функционального программирования на Javascript!