Цикл статей «Учебник Javascript».
Следующая статья — «Named Function Expression в Javascript».
Предыдущая статья — «Функции в Javascript».
В Javascript функцию можно присвоить переменной.
1 2 3 4 5 6 |
// Function Expression - присваиваем функцию переменной var func = function(x) { alert(x); }; func("test"); // Вызов объявленной функции |
В примере выше после выполнения кода переменная func будет содержит функцию. Эту переменную можно использовать так же, как и обычную функцию. Такой способ объявлений функций называется Function Expression. А обычное объявление функции называется Function Declaration:
1 2 3 4 |
// Function Declaration - обычный способ объявления функций function func1 (x) { alert(x); } |
Разница между ними в том, что все Function Declaration считаются уже объявлены до того, как начнёт выполняться первый оператор, а Function Expression начинает действовать только после своего объявления.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
func1("test1");// Сработает, так как Function Declaration //считаются объявленными до выполнения первого // оператора function func1(x) { alert(x); } func2("test2"); // Так нельзя. Не сработает. Function Expression // Ещё не была объявлена. var func2 = function(x) { alert(x); }; |
Функция может быть объявлена без присвоения имени. Функции без имени называются анонимными. Анонимные функции могут быть использованы, например, для передачи функции в качестве параметра другой функции.
1 2 3 4 5 6 7 8 |
function someReallyCoolFunction(func1) { alert(func1()); }; // Передаём анонимную функцию в качестве параметра someReallyCoolFunction(function () { return "Вася"; }); |
Есть ещё один способ объявления функции на основе строки с кодом:
1 2 3 4 |
var sum = new Function('a,b,c', ' return a+b+c; '); var result = sum(1, 2, 3); alert( result ); // 6 |
Не используйте без видимых причин Function Expression. Используйте Function Declaration, а остальные только по мере надобности. В таком случае код будет легче читать и сопровождать.
Цикл статей «Учебник Javascript».
Следующая статья — «Named Function Expression в Javascript».
Предыдущая статья — «Функции в Javascript».