First-class citizen là gì?

Phrase None
first class citizen

Nếu bất kỳ ngôn ngữ lập trình (programming language) nào có khả năng coi các hàm (function) là giá trị (do đó có thể gán hàm vào biến), truyền chúng dưới dạng đối số (argument) và trả về (return) một hàm từ một hàm khác thì người ta nói rằng ngôn ngữ lập trình có first-class function và các hàm được gọi là first-class citizen trong ngôn ngữ lập trình đó. Ví dụ như ngôn ngữ lập trình Javascript.

Coi các hàm như giá trị


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

Truyền hàm dưới dạng đối số (argument) trong hàm khác


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);

Trả về một hàm từ hàm khác


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

Learning English Everyday