เรียนรู้ว่า JavaScript Object Literals คืออะไร
มีบางแนวคิดในการเขียนโปรแกรมที่ตั้งชื่อไว้ทำให้คุณคิดว่ามันซับซ้อนกว่าจริง Object Literals ไม่ซับซ้อนกว่ารายการซื้อของที่ตลาดมากนัก
Object Literal คืออะไร?
Object เป็นประเภทค่าพิเศษใน JavaScript ที่สามารถมีการเชื่อมต่อกับค่าอื่นๆ ได้
Object Literal คือค่าอ็อบเจ็กต์ที่คุณ เขียนลงไปในโปรแกรม/แอปโดยตรง (literally)
Object Literal ปกติประกอบด้วยรายการ name-value pairs (property:value) คั่นด้วยคอมมา ห่ออยู่ใน curly braces {}
ตัวอย่าง Object Literal:
const dog = { name: 'Naya', sex: 'female', age: 2, breed: 'Rottweiler mix' };
เมื่อผมพูด ปกติ หมายถึง object literal อาจจะว่างเปล่า หรือมี name-value pair เดียว:
// Empty const dog = {} // Single const dog = { name: 'Naya' }
ในตัวอย่างข้างบน dog เป็นค่าอ็อบเจ็กต์ (Object Literal) ซึ่งห่อหุ้มข้อมูล (data) เกี่ยวกับหมา โดยใช้ name-value pairs (เช่น name: 'Naya')
ดังนั้นคุณสามารถพูดได้ว่า Object Literal เป็นประเภทค่า (object value) ใน JavaScript ที่มีอ้างอิงไปยังค่าอื่นๆ (name-value pairs)
สำคัญที่ต้องรู้ว่า properties ภายในอ็อบเจ็กต์ อยู่ ภายในอ็อบเจ็กต์ และมี scope อยู่ภายใน — แต่ values ไม่ได้
ในตัวอย่างข้างบน name, sex, age, breed ถือเป็น properties ของอ็อบเจ็กต์ dog และไม่สามารถเปลี่ยนแปลงจากภายนอกได้
อย่างไรก็ตาม ค่า เช่น Naya & female ไม่ได้อยู่ภายในอ็อบเจ็กต์ (ไม่ได้ถูก scoped) พวกมันเพียงถูกอ้างอิงโดย properties ของอ็อบเจ็กต์เท่านั้น