Блог

Объявление функций в JavaScript или я морально устарел !?

Если вы еще не знаете про такой замечательный ресурс как 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 (чем я хочу заняться в ближайшее время), надеюсь, что смогу ответить на этот вопрос, ну и конечно поделюсь с вами =)