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中的函数被称为 一等公民 。
极客教程