Private property란 클래스 내부에서만 접근할 수 있으며 내부 인터페이스를 구성할 때 쓰이는 property이다. 이를 사용하는 이유는 클래스 외부에서 접근하지 못하게 하기 위해서이다.
Property 이름 앞에 '#'을 붙이면 Private property로 만들 수 있다.
class CoffeeMachine {
#waterLimit = 200;
#checkWater(value) {
if (value < 0) throw new Error("물의 양은 음수가 될 수 없습니다.");
if (value > this.#waterLimit) throw new Error("물이 용량을 초과합니다.");
}
}
let coffeeMachine = new CoffeeMachine();
// 클래스 외부에서 private에 접근할 수 없음
coffeeMachine.#checkWater(); // Error
coffeeMachine.#waterLimit = 1000; // Error
private 필드는 public 필드와 상충하지 않습니다. private 프로퍼티 #abc와 public 프로퍼티 abc를 동시에 가질 수 있습니다.