JavaScript OOP의 구식 프라이버시

# 기호를 통한 프라이빗 속성 및 메서드 선언은 JavaScript에 아주 최근에 도입되었습니다. 그 전에는 특별한 요령을 사용해야 했습니다.

이 요령의 핵심은 프라이빗 속성 및 메서드의 이름이 밑줄 기호로 시작해야 한다는 규칙을 정하는 것입니다. 실제로 이러한 이름은 프라이빗이 되지 않지만, 우리는 클래스 외부에서 그것들을 사용하지 않기로 약속합니다.

시도해 봅시다. 이런 스타일로 프라이빗 속성을 만들어 보겠습니다:

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

클래스의 객체를 생성하겠습니다:

javascriptlet user = new User('john', 'smit');

우리 속성의 값을 출력하는 메서드를 호출하겠습니다:

javascriptconsole.log(user.show());

클래스 외부에서 속성에 접근하려는 시도는 오류를 일으키지 않습니다:

javascriptconsole.log(user._name); // 오류 없음
Задание 1

다음 코드에서 속성을 프라이빗으로 만드세요:

javascriptclass Employee {
  constructor(name, salary) {
    this.name = name;
    this.salary = salary;
  }
  
  getName() {
    return this.name;
  }
  getSalary() {
    return this.salary;
  }
}
Задание 2

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

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