Введите ваш адрес почты


sdcvoy.ru
Понравился сайт? Поделись с друзьями!
Главная » Javascript » Function-declaration-i-function-expression

Function Declaration и Function Expression

В JavaScript существуют разные способы объявления функций. С одним способом вы уже знакомились в предыдущем уроке:

function имя функции(параметры){

...   // код функции

}

Такое объявление функции называют «классическим» или другое название из спецификации языка — Function Declaration. Другой способ объявления функции называется функциональным выражением или Function Expression. Способ объявления функции тоже является очень простым:

var имя функции = function (параметры){

...   // код функции

}

Здесь надо понимать, что функция это такая же переменная, как строка или число. Так в чем же разница между этими двумя способами объявления функций? А разница состоит в том, что способ Function Declaration даёт вам больше свободы, он сработает почти во всех случаях, что это понять давайте рассмотрим вот такой пример:

userLogin('admin');
var userLogin = function (name){

alert ( 'Ваш логин ' + name)

}

Здесь использую функциональное выражение мы объявили функцию после её вызова. В данном случае вылезет ошибка, но если объявить функцию другим способом, то этого можно избежать:

userLogin('admin');
function userLogin(name){

alert ( 'Ваш логин ' + name)

}

Вроде тоже самое, но ошибки здесь уже не будет, так как в данном случае сначала выполняется код функции, а потом вызов.

Есть ещё один способ создания функции — new Function. Синтаксис этого способа очень простой:

var имя функции = new Function('параметры через запятую', 'код функции');

Вот небольшой пример использования данного способа:

var multi = new Function('a,b', ' return a*b; ');

var result = multi(5, 6);
alert( result ); // выведет 30


наверх