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