พารามิเตอร์ของฟังก์ชันที่ถูกส่งผ่านใน JavaScript
สมมติว่าเรามีฟังก์ชัน test ซึ่ง
รับพารามิเตอร์เป็นฟังก์ชันอื่นและพิมพ์ผลลัพธ์
การทำงานของฟังก์ชันที่ถูกส่งผ่านนั้นลงในคอนโซล:
function test(func) {
console.log( func() );
}
ให้ฟังก์ชันที่ถูกส่งผ่าน func
รับพารามิเตอร์เป็นตัวเลขและทำบางอย่างกับมัน
ส่งตัวเลขให้มัน เช่น ตัวเลข 3:
function test(func) {
console.log( func(3) );
}
ทีนี้มาเรียกใช้ฟังก์ชัน test
โดยส่งฟังก์ชันแบบไม่มีชื่อ (anonymous) เข้าไปเป็นพารามิเตอร์
ฟังก์ชันไม่มีชื่อนี้จะรับพารามิเตอร์เป็นตัวเลข
และคืนค่ากำลังสองของตัวเลขนั้น
จากทั้งหมดนี้ โครงสร้างของเราจะ
พิมพ์ค่ากำลังสองของตัวเลข 3 นั่นคือ 9:
// จะพิมพ์ 9:
test(
function(num) {
return num * num;
}
);
function test(func) {
console.log(func(3));
}
มาจัดแต่งโค้ดให้สวยงามขึ้น:
// จะพิมพ์ 9:
test(function(num) {
return num * num;
});
function test(func) {
console.log(func(3));
}
คัดลอกโค้ดฟังก์ชัน test ของฉัน
เรียกใช้ฟังก์ชันนี้ โดยส่งพารามิเตอร์เป็น
ฟังก์ชันแบบไม่มีชื่อ ซึ่งจะรับพารามิเตอร์เป็น
ตัวเลขและคืนค่ากำลังสามของมัน
ปรับเปลี่ยนโค้ดของคุณให้ฟังก์ชันที่ถูกส่ง
ไม่ใช่ฟังก์ชันไม่มีชื่อ แต่ถูกกำหนด
เป็น Function Declaration โดยมีชื่อว่า func
ปรับเปลี่ยนฟังก์ชันที่ถูกส่งเป็น
Function Expression โดยใช้ชื่อเดียวกันว่า func
ให้ฟังก์ชันที่ถูกส่งตอนนี้รับ
สองพารามิเตอร์และคืนค่าผลรวมของมัน
เมื่อ
เรียกใช้ฟังก์ชันที่ถูกส่งภายใน test
ให้ส่งตัวเลข 2
และตัวเลข 3 ไปยังฟังก์ชันที่ถูกส่ง
พิมพ์ผลลัพธ์ออกมา