Что именно являются функциями первого класса?
Я искал в Интернете, чтобы попытаться понять этот термин. Я понимаю, что "функции первого класса" - это функции, которые можно назначать переменным и "передавать". Но я на самом деле не понимаю, что это значит.
Так что это значит? Что такое функции первого класса?
Примеры будут приветствоваться.
1 ответ
Функции первого класса в основном означают Функции как тип данных, как строка, массив или число. Итак, в Javascript функции - это данные.
Вы должны взглянуть на:
Что такое функция гражданина первого класса?
так что вы можете передавать функции в качестве аргументов другой функции:
function map(array,fun){
var result = [];
for(var i=0;i<array.length;i++){
result.push(fun(array[i]));
}
return result;
}
map([1,2,3],function(a){return a+1;}); //yields [2,3,4]
Здесь у нас есть функция, которая перебирает массив и возвращает результат приложения (переданный в качестве параметра) для каждого элемента массива. Таким образом, приложение веселья является переменной, поэтому данные.
Если вы сравниваете с Java, вы не можете сделать это в Java (до 7) без написания классов, поэтому функции не являются первым классом в Java <=7, в отличие от целых чисел или чисел с плавающей запятой или самих классов. Java(<=7) имеет только методы классов, но не функции.