JavaScript 头等公民是什么

JavaScript 头等公民是什么

如果某种编程语言具有将函数视为值、将其作为参数传递以及从另一个函数返回函数的能力,那么该编程语言被称为具有 头等函数 ,而这些函数被称为 头等公民

在JavaScript中,函数非常重要且强大。JavaScript具备成为具有头等函数的语言所需的所有功能或特性,因此将函数视为 头等公民 。让我们看一下函数作为 头等公民 的所有能力。

1. 将函数视为值的能力: JavaScript中的函数可以被视为值,即函数可以被存储为变量的值。

<script> 
  var greet = function() { 
    console.log("Welcome to GeeksforGeeks!"); 
  } 
  greet(); 
</script> 

输出:

Welcome to GeeksforGeeks!

在上面的示例中,一个函数被存储在变量 greet 中,带有括号的变量,即 greet() 调用函数体并在控制台显示输出。 匿名函数 在函数被用作值的地方使用。

2. 作为参数传递函数的能力: JavaScript中的函数也有将函数作为参数传递给另一个函数的能力。让我们看一个示例-

<script> 
function teacher(){ 
    return "Teacher"; 
} 
  
function student(){ 
    return "Student"; 
} 
  
function greet(user){ 
    console.log("Welcome", user());     
} 
  
// Prints "Welcome Teacher" 
var message = greet(teacher); 
  
// Prints "Welcome Student"  
var message = greet(student); 
</script>

输出:

Welcome
Teacher
Welcome
Student

在上面的示例中,当我们将参数传递给函数 greet() 时,如果参数为 teacher,则传递给函数 teacher() 的函数体,并返回字符串“Teacher”,但如果参数为 student,则传递给函数 student() 的函数体,并返回字符串“Student”。

3. 从另一个函数中返回函数的能力: 现在,让我们看一个在JavaScript中从另一个函数中返回函数的示例-

<script> 
var greet = function(){ 
    return function(){ 
    console.log("Welcome to GeeksforGeeks!"); 
    } 
} 
greet()(); 
</script> 

输出:

Welcome to GeeksforGeeks!

在这里,我们使用双括号来调用返回的函数,因此我们使用greet()()。 用单括号调用函数本身而不调用其返回的函数。我们也可以通过将函数存储在变量中来实现,就像这样 –

var func = greet();
func();

返回一个函数的函数被称为 高阶函数

正如我们所看到的,JavaScript具备了成为一种具有 一等函数 的编程语言所需的所有能力和特性,因此JavaScript中的函数被称为 一等公民

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程