Function Declaration и Function Expression в JavaScript

Function Declaration и Function Expression в JavaScript

От автора: приветствую вас, друзья. Мы продолжаем цикл статей, посвященных изучению JavaScript. И сегодня мы с вами познакомимся с такими понятиями, как Function Declaration и Function Expression в JavaScript, а также узнаем, в чем разница между ними. Приступим.

Собственно, с Function Declaration мы с вами уже знакомы, это стандартное объявление или, иными словами, декларирование функции, которую мы можем вызывать в коде, как после объявления функции, так и до этого:

hello('Вызов функции до ее объявления');
function hello(param){
	console.log(param);
}
hello('Вызов функции после ее объявления');

Оба вызова функции замечательно отработают:

Хорошо, а что из себя представляет Function Expression? Function Expression (функция выражение, функциональное выражение) — это еще один вариант создания функций, который выглядит следующим образом:

var hello = function(param){
	console.log(param);
};

То есть, мы код функции присваиваем обыкновенной переменной. Собственно, переменная в данном случае и будет теперь ни чем иным, как функцией, именем функции, по которому можно к ней обратиться. Давайте попробуем вызвать функцию дважды, как и в предыдущем примере, до объявления функции и после этого:

hello('Вызов функции до ее объявления');
var hello = function(param){
	console.log(param);
};
hello('Вызов функции после ее объявления');

Упс! Не вышло. Наш код вернул ошибку, сообщая, что функции hello нет. Эта ошибка сработала до объявления функции. Ок, давайте попробуем закомментировать первый вызов функции:

А вот второй вызов успешно отработал. Полагаю, вы уже догадались, в чем конкретно заключается отличие Function Declaration от Function Expression. Правильно, при декларировании функции она (функция) создается до выполнения остального кода. Соответственно, к моменту начала выполнения кода все задекларированные функции уже созданы и доступны к использованию.

В случае же с функциональным выражением функции будут создаваться только в момент выполнения кода, а не перед ним. Использование Function Expression часто можно встретить в коде различных библиотек и скриптов, поэтому, если вы увидите запись в переменную некой функции, не удивляйтесь — это Function Expression.

На этом мы завершим данную статью. Если вы хотите больше узнать о JavaScript, тогда рекомендую обратить свое внимание на уроки по JavaScript и отдельный курс по языку JavaScript. Удачи!

JavaScript&jQuery с нуля до профи

Пройдите пошаговый видеокурс по JavaScript&jQuery

Научиться

Метки:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree