คุณสมบัติแอคเซสเซอร์ใน OOP ใน JavaScript

มีคุณสมบัติของออบเจ็กต์อยู่สองประเภท

ประเภทแรกคือคุณสมบัติข้อมูล (data properties) เรารู้วิธีทำงานกับพวกมันแล้ว คุณสมบัติทั้งหมด ที่เราใช้มาจนถึงตอนนี้ เป็นคุณสมบัติข้อมูล

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

คุณสมบัติแอคเซสเซอร์ถูกสร้างขึ้นโดยใช้ คำหลัก get และ set ที่เขียน ตอนประกาศเมธอด:

javascriptclass User {
  get name() {
  
  }
  set name(name) {
  
  }
}

ผลจากการประกาศเช่นนี้ คลาสของเราจะมีคุณสมบัติ name ในขณะเดียวกันเมื่อพยายามอ่าน คุณสมบัตินี้ จะมีการเรียกเมธอด ที่ประกาศผ่าน get:

javascriptlet name = user.name;

เมื่อพยายามเขียน จะมีการเรียกเมธอด ที่ประกาศผ่าน set:

javascriptuser.name = 'john';
Задание 1

กำหนดคลาสต่อไปนี้:

javascriptclass Employee {
  get name() {
    console.log('get');
  }
  set name(name) {
    console.log('set');
  }
}

สร้างออบเจ็กต์ของคลาสนี้ และลองเขียนและอ่าน ข้อมูลจากคุณสมบัติ name