คุณสมบัติแอคเซสเซอร์ใน OOP ใน JavaScript
มีคุณสมบัติของออบเจ็กต์อยู่สองประเภท
ประเภทแรกคือคุณสมบัติข้อมูล (data properties) เรารู้วิธีทำงานกับพวกมันแล้ว คุณสมบัติทั้งหมด ที่เราใช้มาจนถึงตอนนี้ เป็นคุณสมบัติข้อมูล
คุณสมบัติประเภทที่สองเรายังไม่ได้พิจารณา นั่นคือคุณสมบัติแอคเซสเซอร์ (accessor properties) โดยแก่นแท้แล้วมันคือฟังก์ชัน ซึ่งถูกใช้ สำหรับการกำหนดและรับค่า แต่ในโค้ดภายนอก พวกมันดูเหมือนคุณสมบัติปกติของออบเจ็กต์
คุณสมบัติแอคเซสเซอร์ถูกสร้างขึ้นโดยใช้
คำหลัก get และ set ที่เขียน
ตอนประกาศเมธอด:
class User {
get name() {
}
set name(name) {
}
}
ผลจากการประกาศเช่นนี้
คลาสของเราจะมีคุณสมบัติ
name ในขณะเดียวกันเมื่อพยายามอ่าน
คุณสมบัตินี้ จะมีการเรียกเมธอด
ที่ประกาศผ่าน get:
let name = user.name;
เมื่อพยายามเขียน จะมีการเรียกเมธอด
ที่ประกาศผ่าน set:
user.name = 'john';
กำหนดคลาสต่อไปนี้:
class Employee {
get name() {
console.log('get');
}
set name(name) {
console.log('set');
}
}
สร้างออบเจ็กต์ของคลาสนี้
และลองเขียนและอ่าน
ข้อมูลจากคุณสมบัติ name