JavaScript OOP의 프라이빗 메서드
프로퍼티뿐만 아니라 메서드도 프라이빗으로 만들 수 있습니다. 일반적으로 보조 메서드를 프라이빗으로 만들어 클래스 외부에서 실수로 호출되는 것을 방지합니다.
예제를 살펴보겠습니다. 다음과 같은 클래스가 있다고 가정해 봅시다:
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 + '₽';
}
}