Если вы еще не знаете про такой замечательный ресурс как
www.codecademy.com/ — обязательно посетите его. И вот на этом самом ресурсе я решил пройти курс по
JavaScript, освежить знания по данному языку и узнать что-то новое — вот это мои основные цели «обучения».
Перейдем к делу. В один прекрасный день добрался я до раздела курса, посвященного функциям в
JavaScript. Всю свою сознательную жизнь функции в
JavaScript я объявлял примерно вот так:
function funcName(param){
}
Классика казалось бы. Однако курсы наhttp://www.codecademy.com/ рекомендуют объявлять функции в js как:
var foodDemand = function(food){
console.log('I want to eat' + " " + food);
};
// вызов
foodDemand('test!');
Вернее не то что рекомендуют, они даже не говорят о том, что существует старый добрый способ, к которому я привык. Подход, предлагаемый в курсе, больше похож на объявление анонимных функций, например в Perl:
use strict;
use warnings;
use 5.010;
my $func = sub {
say 'Hello!';
};
#вызов
$func->();
Или в PHP, начиная с 5.3:
$func = function($name)
{
printf("Hello %s\r\n", $name);
};
// вызов
$func('test!');
Почему codecademy рекомендует именно такой способ? Это считается best practice в JavaScript?
Какие преимущества дает такой подход?
п.с. по мере углубленного изучения JavaScript (чем я хочу заняться в ближайшее время), надеюсь, что смогу ответить на этот вопрос, ну и конечно поделюсь с вами =)