JavaScript OOP의 프라이빗 메서드

프로퍼티뿐만 아니라 메서드도 프라이빗으로 만들 수 있습니다. 일반적으로 보조 메서드를 프라이빗으로 만들어 클래스 외부에서 실수로 호출되는 것을 방지합니다.

예제를 살펴보겠습니다. 다음과 같은 클래스가 있다고 가정해 봅시다:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  
  show() {
    return this.#name;
  }
}

이 클래스에 문자열을 매개변수로 받아 첫 번째 문자를 대문자로 만드는 프라이빗 메서드를 만들어 보겠습니다:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  
  show() {
    return this.#name;
  }
  
  #cape(str) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

다른 메서드 내에서 이 보조 메서드를 사용해 보겠습니다:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  
  show() {
    return this.#cape(this.#name);
  }
  
  #cape(str) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

확인해 보겠습니다. 우리 클래스의 객체를 생성하겠습니다:

javascriptlet user = new User('john');

보조 메서드를 사용하는 퍼블릭 메서드를 호출해 보겠습니다:

javascriptconsole.log(user.show());
Задание 1

다음 코드에서 보조 메서드를 프라이빗으로 만드세요:

javascriptclass Employee {
  constructor(name, salary) {
    this.name = name;
    this.salary = salary;
  }
  
  getSalary() {
    return this.addSign(this.salary);
  }
  
  addSign(num) {
    return num + '₽';
  }
}