การเขียนฟังก์ชันเพื่อรองรับการใช้งานซ้ำ บางครั้งก็ต้องการความยืดหยุ่น เพื่อให้ผู้ที่เรียกใช้ฟังก์ชันสามารถใช้งานฟังก์ชันได้อย่างยืดหยุ่นและนำไปใช้ซ้ำในงานได้อย่างตรงความต้องการ ซึ่งการประกาศ optional parameters ในฟังก์ชันเป็นสิ่งที่ทำให้ฟังก์ชันมีความยืดหยุ่น ใช้งานได้หลากหลายตามความต้องการมากยิ่งขึ้น นอกจากนี้การเขียนฟังก์ชันโดยเลือกใส่ตัวแปรบางตัวแปรได้ยังส่งผลให้สามารถต่อเติมฟังก์ชันเดิมให้มีขอบเขตการทำงานกว้างขึ้นภายหลังโดยไม่ส่งผลกระทบกับการเรียกฟังก์ชันเดิมก่อนมีการแก้ไขได้ด้วย

วิธีการประกาศ parameters ในแบบ Optional parameters ควรจะอยู่ในรูปแบบของ Object (param_d) จะทำให้สามารถ parameter ข้างใน object ไม่จำเป็นต้องถูกประกาศก็สามารถรับค่าจาก initialของตัวแปรได้เลย

สร้างความยืดหยุ่นในการใช้งานฟังก์ชัน js ด้วย Optional parameter

ผลลัพธ์ที่ได้

สร้างความยืดหยุ่นในการใช้งานฟังก์ชัน js ด้วย Optional parameters

ซึ่งแบบที่ initial อย่างเดียวไม่ใส่ Object ครอบ (แบบ param_b) ก็สามารถใช้เป็น Optional parameter ได้ หากไว้ด้านหลังสุด แต่หากไม่ประกาศไว้ด้านหลังสุด ก็จำเป็นต้องประกาศ parameter นั้น และหากมี Optional parameter หลายตัว การประกาศแบบ param_b จะไม่สามารถทำได้ เช่น ฟังก์ชันต้องการรับ Optional parameter 2 ตัว หากผู้ใช้ฟังก์ชันต้องการจะส่งตัวแปรตัวที่ 2 เข้าไปแต่ไม่ต้องการส่งตัวแรก ผู้ใช้จำเป็นต้องส่งผ่านตัวแปรตัวแรกเข้าไปก่อนจึงจะส่งตัวแปรตัวที่สองเข้าไปด้วย ส่งผลให้การประกาศแบบ param_b ไม่มีความยืดหยุ่นในการใช้งาน

และหากผู้ใช้ต้องการส่งตัวแปรเข้าไปในฟังก์ชัน ก็สามารถส่งค่า parameter ด้วยตัวแปร Object ได้เลย

สร้างความยืดหยุ่นในการใช้งานฟังก์ชัน js ด้วย Optional parameters

อย่างในตัวอย่าง คือส่งแค่ค่า param_a เป็น Object ของ x กับ y และค่า param_d ที่เป็น number เข้าไป ฟังก์ชันก็จะใช้ค่า initial ที่ได้กำหนดไว้ใน param_b และ param_c เพื่อนำมาคำนวณหาผลลัพธ์แล้ว log ออกมา

ผลลัพธ์ที่ได้

สร้างความยืดหยุ่นในการใช้งานฟังก์ชัน js ด้วย Optional parameters

และสุดท้ายนี้ ผมก็หวังเป็นอย่างยิ่งว่า บทความนี้จะช่วยให้ผู้อ่านที่กำลังพัฒนาเว็บไซต์หรือแอปพลิเคชันด้วย Javascript ทุกท่านสามารถพัฒนาฟังก์ชันที่มีความยืดหยุ่นในการใช้งาน และสามารถนำไปใช้งานซ้ำได้อย่างมีประสิทธิภาพ

ผู้เขียน เธียรวิชญ์ สิริสาครสกุล

วันที่ 29 ตุลาคม 2564