什么是头等舱功能?

时间:2014-03-28 20:25:52

标签: function first-class-functions

我搜索网络试图理解这个词。我知道'第一类函数'是可以分配给变量和'传递'的函数。但我实际上并不明白这意味着什么。

那是什么意思?什么是头等功能?

欢迎举例。

1 个答案:

答案 0 :(得分:1)

第一类函数基本上是指函数作为数据类型,就像字符串,数组或数字一样。所以在Javascript中,函数就是数据。

你应该看看:

What is a first class citizen function?

所以你可以将函数作为另一个函数的参数传递:

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&lt; = 7中的第一类,不像整数或浮点数或类本身。 Java(&lt; = 7)只有类的方法,而不是函数。