Функции - одна из основных концепций языка JavaScript. При этом есть кардинальное отличие от многих языков программирования, в JS каждая функция сама по себе является объектом, а соответственно и манипулировать с ней можно разными способами:
- Передавать в качестве аргумента и возвращать из других функций.
- Создавать анонимные функции и присваивать в качестве значений переменных или свойств объектов.
Функция в JavaScript - специализированный тип объекта, позволяющий описать логику работы по обработке данных.
Объявление функции
Как и любой объект, перед использованием необходимо объявить функции, то есть выполнить два шага:
- Дать имя функции. В том числе задать список входных параметров.
- Определить логику работы функции.
Объявить функции можно тремя разными способами:
Декларативный способ
В этом способе для объявления используется следующий синтаксис:
Здесь
- fucntion - ключевое слово;
- идентификатор - обязательное название функции;
- параметры - не обязательный перечень передаваемых в функцию параметров;
- логика работы - описание самих процессов, выполняемых функцией;
- return - ключевое слово, объявляющее после себя, что вернет функция;
- выражение/объект - то, что возвращает функция, это может быть другая переменная, результат вычислений и т.д.
Рассмотрим простой пример:
В данном примере мы объявили функцию sum, которой передается при вызове какое-то число, после чего находится квадрат этого числа и к нему прибавляется оно же само, полученное значение возвращается.
Функциональный способ
В этом случае смысл будет понятен только тем людям, которые уже сталкивались с функциональным программированием. Если говорить очень просто и грубо - объявляется анонимная функция и присваивается переменной. Рассмотрим синтаксис:
Основное отличие от предыдущего тут, как уже упоминалось выше - название функции вынесено, как отдельная переменная и сама функция анонимна (не обязательно).
Рассмотрим аналогичный пример, который видели в декларативном способе:
Такой способ в некоторых случаях может быть более удобен.
Способ ООП (Объектно-ориентированное программирование)
Беря во внимание то, что функция в Javascript является объектом, то можно создавать её экземпляры с помощью оператора new, однако следует понимать, что каждый раз будет создаваться новый экземпляр, а это плохо влияет на использование памяти.
Как и в ООП, функции можно определять внутри классов и потом обращаться к ним, как к Методам этого класса. Вдаваться в теорию ООП мы сейчас не будем, а просто покажем пример такого объявления:
Тут мы создаем класс Human, в нем определяем конструктор, который автоматически вызовется, когда мы объявим экземпляр класса, а также метод(функцию) hello, которая будет собирать строчку из того, что мы передали в конструктор и в этот метод. Результатом будет всплывающее окно с текстом "Привет, Пётр".
Некоторые из вас спросят, а что такое за this в этом коде. Это специальное слово в JS, которое позволяет указывать классу самому на себя. По сути своей по мимо двух методов мы так же создали внутри класса переменную start и присвоили ей значение во время инициализации объекта класса.
Вот три разных способа объявления функции, вы можете пользоваться любым из них, каким вам будет удобнее для решения вашей задачи. Про рекурсию и прочие прелести функций в Javascript мы расскажем в другой статье.
Добавить комментарий
Авторизоваться с помощью: