728x90
반응형
private이 언제부터 가능했지?
원래 javascript는 모두 public이다.
하지만 2021년 1월 TC39의 stage3(candidate)에 private을 정의할 수 있는 새 표준 사양이 제안되었고,
표준 사양으로 승급이 확실시 되기 때문에 최신브라우저(chrome74이상), node.js(v.12이상)에 이미 구현되어있다.
ECMA에는 ECMAScript외에도 다양한 기술의 사양을 관리하고, 그 주체인 기술위원회(Technical Committee도 여럿 존재한다. 그 중 ECMA-262(ECMAScript)를 담당하는 위원회가 TC39다.
TC39프로세스는 새 표준 사양을 추가하기 위한 과정을 말한다. 0~4단계까지 총 5단계가 있다.
stage 0 : strawman -> stage 1 : proposal -> stage 2 : draft -> stage 3 : candidate -> stage4 : finished
3단계까지 승급한 제안은 심각한 문제가 없으면 4단계로 승급된다.
이제 javascript는 public과 private이 가능하지만
javascript를 확장한 typescript에서는 private, public, protected를 모두 지원한다.
private정의
private은 앞에 #을 붙여준다. 반드시 필드(클래스 몸체)에 정의해야 한다. cosntructor에 정의하면 에러.
class Person{
#name = ""; //없으면 에러
constructor(name){
this.#name = name;
}
}
const me = new Person("Lee");
console.log(me.#name); //에러 private은 접근 불가능하다.
private이므로 직접 접근하면 에러가 난다.
따라서 getter나 setter를 이용하여 접근해야 한다.
728x90
반응형
'javascript' 카테고리의 다른 글
[javascript] 프로토타입 섀도잉, 오버리이딩 (0) | 2022.04.07 |
---|---|
[javascript] 상속, class, extends키워드 (0) | 2022.04.06 |
[javascript] 클래스 필드란 (0) | 2022.04.05 |
[javascript] static 사용하기, class, static method (0) | 2022.04.05 |
[javascript] 생성자 함수, 내부 슬롯 [[Construct]] (2) | 2022.04.05 |