반응형
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
- 타입스크립트
- 프로그래머스
- Node.js
- 그래프
- 알고리즘
- dfs
- 가천대
- 문자열
- socket
- type challenge
- 백준
- 자바스크립트
- Algorithm
- ip
- 소켓
- typescript
- TCP
- 레벨 1
- HTTP
- 타입 챌린지
- 프로그래머스 레벨 2
- Nestjs
- dp
- HTTP 완벽 가이드
- javascript
- BFS
- 크롤링
- Crawling
- 수학
- 쉬운 문제
Archives
- Today
- Total
kakasoo
[javaScript] 객체와 생성자, Symbol() 본문
반응형
아는 동생에게 프로그래밍을 가르치며, this에 대해서 설명한 적이 있다.
나는 this를 계속해서, ‘나’라고 설명했다.
너에게 ‘나’는 너일 것이고, 나에게 ‘나’는 나 자신을 가리키는 말인 것처럼,
this는 클래스의 인스턴스들이, 각자 자기 자신을 가리키는 말이라고 말했다.
예컨대 자동차에게 ‘나’는 차종이 아니라, 그 자동차 개체 한 개만을 의미한다는 뜻이었다.
객체지향적인 것
this가 있단 것만으로도 언어는 조금 더 객체지향적이라고 할 수 있다.
Class를 정의한 후 인스턴스를 만든다면, 우리는 깊은 복사를 할 필요 없이 새 객체를 만들 수 있다.
물론 Function을 이용해 재사용성을 의도적으로 없애는 캡슐화도 있긴 하나,
이런 특수한 경우를 제외하고는 대부분의 클래스 기반 언어는 객체지향적이라 할 수 있겠다.
Symbol
객체의 프로퍼티를 정의하기 위해서는 key와 value가 필요하다.
여기서 key는 프로퍼티의 이름으로, 일반적인 경우에는 단순한 문자열로 저장이 된다.
하지만 JavaScript에서는 문자열 외에도 Symbol 이라고 하는 특수한 타입으로도 정의할 수 있다.
Symbol이라는 게 뭘까?
Symbol은 일종의 hash function이라고 이해하면 된다.
캡슐화를 더 높이기 위해, 호출할 때마다 값이 달라지는 Symbol을 이용해 프로퍼티를 정의한다.
반응형
'프로그래밍 > JavaScript' 카테고리의 다른 글
Nestjs 시작하는 법 (0) | 2021.03.16 |
---|---|
[JavaScript] 자바스크립트 기초 체크 (0) | 2020.12.23 |
[javaScript] 가비지 컬렉션 (0) | 2020.08.02 |
[javaScript] 형변환과 테스트하기 좋은 코드 (0) | 2020.08.01 |
JavaScript의 배열 (0) | 2020.08.01 |