Что именно являются функциями первого класса?

Я искал в Интернете, чтобы попытаться понять этот термин. Я понимаю, что "функции первого класса" - это функции, которые можно назначать переменным и "передавать". Но я на самом деле не понимаю, что это значит.

Так что это значит? Что такое функции первого класса?

Примеры будут приветствоваться.

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) имеет только методы классов, но не функции.

Другие вопросы по тегам