หลังจากเราเริ่มคุ้นเคยกับ JavaScript กันแล้ว ในบทความนี้เราจะมาเรียนรู้ถึงสิ่งที่เรียกว่า Object กัน
มีคำกล่าวว่า
“Object คือราชาใน JavaScript ถ้าคุณเข้าใจเรื่อง Object คุณก็จะเข้าใจ JavaScript”
คำกล่าวนี้ไม่ไกลเกินความจริงเลยครับ เพราะในภาษา JavaScript นั้น เกือบทุกสิ่งล้วนเป็น Object อย่างเช่น
Object ในภาษา JavaScript คือตัวแปรที่สามารถเก็บค่าได้หลายค่า โดยเขียนอยู่ในรูปของคู่ name:value (เราใช้เครื่องหมาย colon ในการแยกชื่อและค่าของมัน) หลายๆคู่ คล้ายกับ Associative arrays ใน PHP, Dictionaries ใน Python, Hash tables ใน C, Hash maps ใน Java
ตัวอย่าง:
|
สำหรับ Object ใน JavaScript นั้นเราเรียกชื่อ(name)อีกอย่างว่า object property และสามารถเขียน object method ได้โดยนิยามฟังก์ชันให้กับ object property นี้ ขอให้ผู้อ่านลองดูตารางแสดง property ของตัวแปร student1 ต่อไปนี้เพื่อความเข้าใจมากขึ้น
Property | Value |
firstName | Mary |
age | 18 |
school | EPT |
detail | function(){return this.firstName + “ learned programming at ” + this.school;} |
ใน JavaScript เราสามารถสร้าง Object ได้ 3 วิธี ได้แก่
1. ใช้ Object Literal
วิธีนี้เป็นวิธีที่ง่ายที่สุดในการสร้าง Object ทำได้โดยการเขียนลิสต์ของคู่ name:value ไว้ในวงเล็บปีกกา
ตัวอย่าง:
|
2. ใช้คีย์เวิร์ด new
ผลลัพธ์ที่ได้จากวิธีนี้เหมือนกับวิธีแรกทุกประการ ดังนั้นถ้าจะประหยัดเวลาเขียนโค้ดก็ใช้วิธีแรกดีกว่าครับ
ตัวอย่าง:
|
3. ใช้ object constructor function
การสร้าง Object จากสองวิธีก่อนหน้านี้จะสร้างได้แค่ Object เดียวเท่านั้น แต่บางครั้งเราก็ต้องการสร้าง Object ชนิดเดียวกันหลายๆตัว(มี Property เหมือนกัน) คล้ายกับมีแบบแปลนที่เอาไปใช้สร้างบ้านได้ทั้งหมู่บ้านนั่นเอง ซึ่งเราสามารถทำได้โดยใช้สิ่งที่เรียกว่า object constructor function ดังตัวอย่างต่อไปนี้จะเป็นการสร้าง object constructor function ชื่อ Student() และสร้าง Object ชนิด Student ใหม่โดยการใช้คีย์เวิร์ด new
ตัวอย่าง:
|
เป็นอย่างไรบ้างครับ การสร้าง JavaScript Object ไม่ยากเกินไปใช่ไหมครับ ถ้าอยากอ่านรายละเอียดเพิ่มเติมก็อ่านได้ที่ [1] และ [2]
บทความต่อไปเราจะมาเรียนรู้เกี่ยวกับ JavaScript Object Prototypes กันครับ
สุดท้ายนี้ถ้าผู้อ่านอยากเรียนรู้เรื่อง JavaScript และเรื่องเกี่ยวกับ Web Programming อย่างลึกซึ้งก็ขอแนะนำคอร์ส Web Programming ของทาง EPT ครับ สามารถดูรายละเอียดคอร์สได้โดยคลิกที่นี่ หรือติดต่อได้ที่ 085-350-7540
[1] https://www.w3schools.com/js/js_object_definition.asp
[2] https://www.w3schools.com/js/js_object_constructors.asp
Tag ที่น่าสนใจ: java c# vb.net python c c++ machine_learning web database oop cloud aws ios android
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM