ฟังก์ชันที่มีชื่อที่ส่งผ่านเป็นพารามิเตอร์ใน JavaScript
ฟังก์ชันที่ถูกส่งผ่านเป็นพารามิเตอร์ ไม่จำเป็นต้องเป็นฟังก์ชันที่ไม่ระบุชื่อ (anonymous) เสมอไป
เรามาสร้างพวกมันในรูปแบบ Function Declaration กัน
ตั้งชื่อฟังก์ชันแรกว่า get1 และฟังก์ชันที่สอง
ว่า get2:
function get1() {
return 1;
}
function get2() {
return 2;
}
เรามาส่งชื่อของฟังก์ชัน get1 และ get2
(นั่นคือซอร์สโค้ดของพวกมัน ไม่ใช่ผลลัพธ์จากการเรียกใช้งาน)
เข้าไปเป็นพารามิเตอร์ของฟังก์ชัน test กัน:
function get1() {
return 1;
}
function get2() {
return 2;
}
test(get1, get2); // จะแสดงผล 3
function test(func1, func2) {
console.log( func1() + func2() );
}
เรามาเปลี่ยนให้อยู่ในรูปแบบ Function Expression กัน:
let get1 = function() {
return 1;
}
let get2 = function() {
return 2;
}
test(get1, get2); // จะแสดงผล 3
function test(func1, func2) {
console.log( func1() + func2() );
}
จงสร้างฟังก์ชัน test ที่รับพารามิเตอร์เป็นฟังก์ชัน
จำนวน 3 ฟังก์ชัน และคืนค่าผลรวมของผลลัพธ์จากฟังก์ชันที่ส่งเข้ามา
จงสร้างฟังก์ชันจำนวน 3 ฟังก์ชัน โดยประกาศในรูปแบบ
Function Declaration และตั้งชื่อว่า func1,
func2 และ func3 โดยให้ฟังก์ชันแรก
คืนค่า 1, ฟังก์ชันที่สองคืนค่า 2,
และฟังก์ชันที่สามคืนค่า 3 จากนั้นส่งฟังก์ชันเหล่านี้
เข้าเป็นพารามิเตอร์ของฟังก์ชัน test จากโจทย์ข้อที่แล้ว
จงปรับเปลี่ยนโจทย์ข้อที่แล้ว โดยให้ประกาศฟังก์ชันในรูปแบบ Function Expression โดยใช้ชื่อเดียวกัน