ฟังก์ชันที่มีชื่อที่ส่งผ่านเป็นพารามิเตอร์ใน JavaScript

ฟังก์ชันที่ถูกส่งผ่านเป็นพารามิเตอร์ ไม่จำเป็นต้องเป็นฟังก์ชันที่ไม่ระบุชื่อ (anonymous) เสมอไป

เรามาสร้างพวกมันในรูปแบบ Function Declaration กัน ตั้งชื่อฟังก์ชันแรกว่า get1 และฟังก์ชันที่สอง ว่า get2:

javascriptfunction get1() {
  return 1;
}
function get2() {
  return 2;
}

เรามาส่งชื่อของฟังก์ชัน get1 และ get2 (นั่นคือซอร์สโค้ดของพวกมัน ไม่ใช่ผลลัพธ์จากการเรียกใช้งาน) เข้าไปเป็นพารามิเตอร์ของฟังก์ชัน test กัน:

javascriptfunction get1() {
  return 1;
}
function get2() {
  return 2;
}

test(get1, get2); // จะแสดงผล 3

function test(func1, func2) {
  console.log( func1() + func2() );
}

เรามาเปลี่ยนให้อยู่ในรูปแบบ Function Expression กัน:

javascriptlet get1 = function() {
  return 1;
}
let get2 = function() {
  return 2;
}

test(get1, get2); // จะแสดงผล 3

function test(func1, func2) {
  console.log( func1() + func2() );
}
Задание 1

จงสร้างฟังก์ชัน test ที่รับพารามิเตอร์เป็นฟังก์ชัน จำนวน 3 ฟังก์ชัน และคืนค่าผลรวมของผลลัพธ์จากฟังก์ชันที่ส่งเข้ามา

Задание 2

จงสร้างฟังก์ชันจำนวน 3 ฟังก์ชัน โดยประกาศในรูปแบบ Function Declaration และตั้งชื่อว่า func1, func2 และ func3 โดยให้ฟังก์ชันแรก คืนค่า 1, ฟังก์ชันที่สองคืนค่า 2, และฟังก์ชันที่สามคืนค่า 3 จากนั้นส่งฟังก์ชันเหล่านี้ เข้าเป็นพารามิเตอร์ของฟังก์ชัน test จากโจทย์ข้อที่แล้ว

Задание 3

จงปรับเปลี่ยนโจทย์ข้อที่แล้ว โดยให้ประกาศฟังก์ชันในรูปแบบ Function Expression โดยใช้ชื่อเดียวกัน