В любом языке программирования функции называются гражданами первого класса, если функции в этом языке обрабатываются так же, как и переменные в этом языке.
Мы знаем, что переменные в любом языке могут быть
- Присваивается другой переменной.
- Может передаваться в качестве аргументов некоторым функциям.
- Может быть возвращено из любой функции.
Теперь давайте посмотрим на функции javascript:
- Назначение функций переменным:
вар а = функция (а, б) {
вернуть а+б;
}
console.log(а(2,3));
// вывод: 5
Здесь вы можете заметить, что мы присвоили a анонимную функцию, точно так же, как присваиваем переменную другой переменной.
2. Передача функций в качестве аргументов другим функциям:
var question=function(){
return «Какой лучший язык программирования?»;
}
var tweet=function(quest){
console.log(quest(), «JavaScript — лучший язык программирования»);
}
tweet(question);
//вывод: Какой язык программирования лучший? JavaScript — лучший язык программирования
Здесь вы можете заметить, что мы передали функцию «вопрос» в качестве аргумента функции tweet, точно так же, как передали переменную в качестве аргумента любой функции. Более того, этот способ передачи функции другой функции называется обратным вызовом, а переданная функция будет функцией обратного вызова (вопрос здесь).
3. Возврат функции из другой функции:
вар квадрат = функция (а) {
console.log(`Квадрат числа ${a} равен`);
функция возврата () {
вернуть а*а;
}
}
вычисление переменной = квадрат (5);
console.log(расчет());
//выход:
Квадрат числа 5
25
Здесь вы можете заметить, что Square(5) вызывает анонимную функцию, назначенную квадрату, которая затем напечатает «Квадрат числа 5 есть» и вернет анонимную функцию для вычисления переменной. При вызове этого вычисления, чтобы получить вывод как 25.
Итак, здесь нам удалось вернуть функцию из другой функции и даже успешно вызвать ее.
Таким образом, все три пункта, присваивание переменным, передача функций в качестве аргументов и возврат из функций, будут работать для функций в javascript. Итак, говорят, что javascript имеет первоклассные функции.