Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- DynamoDB
- CloudFormation
- optional chaining
- Kubernetes
- vgw
- prometheus
- AWS
- null 병합 연산자
- Site-to-Site VPN
- Custom Resource
- elasticsearch
- 구조분해 할당
- transit gateway
- Endpoints
- 단축 평가
- docker swarm
- JavaScript
- 비구조화 할당
- VPC
- docker
- 온프레미스
- Service
- Proxy Resource
- grafana
- 자바스크립트
- Await
- api gateway
- On-Premise
- cognito
- 옵셔널 체이닝
Archives
- Today
- Total
만자의 개발일지
[JavaScript] Private Method 와 Field 본문
Private Methods and Fields
자바스크립트에서 클래스의 속성들은 기본적으로 Public이기 때문에 클래스 외부에서 접근할 수 있습니다.
하지만 ES2019부터 #prefix 를 추가해 클래스 내부에서 Private하게 메소드와 필드를 선언할 수 있게 되었습니다.
Private한 메소드와 필드는 클래스 내부에서만 불러올 수 있습니다.
class ClassWithPrivateMethodAndField{
field = 'public field'
#privateField = 'private field'
publicMethod() {
return 'call private method: '+ this.#privateMethod();
}
#privateMethod() {
return this.#privateField
}
}
let cls = new ClassWithPrivateMethodAndField()
console.log(cls.field)
console.log(cls.publicMethod())
public field
call private method: private field
외부에서 접근시 다음과 같은 에러를 반환합니다.
class ClassWithPrivateMethodAndField{
field = 'public field'
#privateField = 'private field'
publicMethod() {
return 'call private method: '+ this.#privateMethod();
}
#privateMethod() {
return this.#privateField
}
}
let cls = new ClassWithPrivateMethodAndField()
console.log(cls.privateField)
console.log(cls.privateMethod())
undefined
TypeError: cls.privateMethod is not a function
참고
'JavaScript' 카테고리의 다른 글
[JavaScript] 클로저(closure)란 (0) | 2022.03.17 |
---|---|
[JavaScript] 콜백함수(Callback Function)란 (0) | 2022.03.17 |
[JavaScript] 호이스팅이란 (0) | 2022.03.16 |
[JavaScript] for문 정리 (0) | 2022.03.16 |
[JavaScript] 생성자와 프로토타입 (0) | 2022.03.15 |
Comments