ลดรูปเพื่อเช็คว่ามีเมธอดไหมถ้ามีจึงเรียกเมธอดนั้นด้วย ?.
Nuttavut Thongjor
JavaScript

เรียนรู้การใช้ Optional Chaining เพื่อเช็คว่ามีเมธอดไหมถ้ามีจึงเรียกเมธอดนั้น

คำอธิบาย
ความคิดเห็น

สมมติให้ออบเจ็กต์ person มีโครงสร้างต่อไปนี้

JavaScript
1const person = {
2 name: 'Somchai',
3 getName() {
4 return this.name
5 },
6}

ถ้าเราไม่แน่ใจว่า person นั้นมีเมธอด getName อยู่หรือไม่เราจึงต้องทำการตรวจสอบก่อนถึงจะเรียกใช้งานได้ หากเรียก person โดยตรงในขณะที่เมธอดดังกล่าวไม่มีย่อมทำให้เกิดข้อผิดพลาดขึ้นได้

JavaScript
1if (person.getName) {
2 person.getName()
3}

หรือเขียนได้อีกรูปแบบคือ

JavaScript
1person.getName && person.getName()

เราสามารถลดรูปการเรียกใช้งานแบบบนได้ด้วยการใช้เครื่องหมาย ?. ดังนี้

JavaScript
1person?.getName()

เครื่องหมายดังกล่าวเรียกว่า Optional Chainging ผู้อ่านที่สนใจสามารถอ่านเรื่องนี้เพิ่มเติมได้จาก ลิงก์นี้ครับ