Page cover

First Class Function

ถ้าจะบอกว่าภาษาโปรแกรมมิ่งไหนเป็น First Class Function แปลว่าภาษานั้นสามาใช้ฟังก์ชั่นเป็นเหมือนตัวแปรนึงได้เลย สามารถ หรือใช้เป็น ของฟังก์ชั่นอื่นได้

การกำหนดฟังก์ชั่นให้ตัวแปร

const foo = () => {
  console.log("foobar");
};

foo(); // เรียกใช้

// ผลลัพธ์
// foobar

หมายเหตุ : สามารถนำไปใช้ได้หลายๆครั้ง ควรตั้งชื่อให้ดี


การส่งฟังก์ชันเป็นอาร์กิวเมนต์

function sayHello() {
  return "Hello, ";
}
function greeting(helloMessage, name) {
  console.log(helloMessage() + name);
}
// ส่ง sayHello() เข้าไปใน greet()
greeting(sayHello, "JavaScript!");

// ผลลัพธ์
// Hello, JavaScript!

หมายเหตุ : ฟังก์ชันที่ถูกส่งเข้าไปและจะถูกใช้ทีหลัง เรียกว่า "callback function" ในตัวอย่างนี้ sayHello() เป็น callback function


รีเทิร์นฟังก์ชั่น (ในฟังก์ชั่นมีฟังก์ชั่น)

function sayHello() {
  return () => {
    console.log("Hello!");
  };
}

หมายเหตุ : ในฟังก์ชั่น sayHello() ยังมีฟังก์ชั่นอีกตัวด้านใน (anonymous function) ที่ไม่มีชื่อโดยใช้ `() => {.....}` ซึ่งมีการปริ้น Hello! ไปยังคอนโซล


การมี First Class Function ในภาษาโปรแกรมมิ่งจะช่วยให้แบ่งโค้ดเป็นโมดูล และมีความยืดหยุ่นมากขึ้น ทำให้ง่ายต่อการทำงานกับโลจิกต่างๆ

To Be Continued..

Last updated