วิธีการส่วนตัวใน OOP ใน JavaScript
ไม่เพียงแต่คุณสมบัติเท่านั้นที่สามารถเป็นส่วนตัวได้ แต่เมธอดก็สามารถเป็นส่วนตัวได้เช่นกัน โดยทั่วไปแล้วเมธอดที่มักถูกทำให้เป็นส่วนตัว คือเมธอดตัวช่วย เพื่อป้องกัน ไม่ให้ถูกเรียกใช้โดยบังเอิญ จากนอกคลาส
ลองดูตัวอย่างกัน สมมติว่าเรามีคลาสต่อไปนี้:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
}
มาสร้างเมธอดส่วนตัวในคลาสนี้กัน ซึ่งจะรับพารามิเตอร์เป็น สตริงและทำให้ตัวอักษรตัวแรกเป็นตัวพิมพ์ใหญ่:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#name;
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
มาใช้เมธอดตัวช่วยของเรา ภายในเมธอดอื่นกัน:
class User {
#name;
constructor(name) {
this.#name = name;
}
show() {
return this.#cape(this.#name);
}
#cape(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
ลองทดสอบกัน สร้าง อ็อบเจ็กต์ของคลาสของเรา:
let user = new User('john');
เรียกใช้เมธอดสาธารณะ ที่ใช้เมธอดตัวช่วย:
console.log(user.show());
ในโค้ดต่อไปนี้ ให้ทำให้เมธอดตัวช่วย เป็นเมธอดส่วนตัว:
class Employee {
constructor(name, salary) {
this.name = name;
this.salary = salary;
}
getSalary() {
return this.addSign(this.salary);
}
addSign(num) {
return num + '₽';
}
}