티스토리 뷰
JS는 프로토타입 기반 프로그래밍 언어이다. 그러다보니 Java와 같이 일반적인 객체지향 언어에서 지원하는 객체지향을 다른 방식으로 제공한다. 어쨌든 상속이나 다형성, 캡슐화 등 객체지향을 위해 필요한 모든 것들을 구현할 수 있다.
JS는 class를 지원하는 것처럼 보인다. Java에서 class를 처음 배운 사람이라면 JS에서의 class는 언어의 난이도를 올리는 또 하나의 골칫덩이라고 할 수 있지만, 프로토타입을 이해하고 있다면 걱정하지 않아도 된다. 왜냐하면 JS의 class는 그냥 프로토타입일 뿐이니 괜히 다른 데에서 배운 class 개념을 가져 올 필요 없다. 아니, 오히려 가져 오면 더 헷갈린다. JS의 class는 프로토타입을 사용할 때 불필요하게 많이 작성해야 하는 텍스트의 양을 줄여주고 코드의 파편화 가능성을 줄여 가독성과 코드 관리의 용이성을 향상시켜 준다고 알고 있는게 속 편해지는 길이다.
이를테면, 프로토타입에 func라는 함수를 추가한다면 보통은 A.prototype.func = function() 라고 써야겠지만, 클래스 안에 이 함수를 정의한다면 func () {} 이면 끝이다. A.prototype 이 문구가 생각보다 프로그래밍 속도를 떨어뜨리는 요인으로 작용한다. 그래서 const a = A.prototype 으로 alias한 코드를 사용하곤 했는데 뭔가 마음에 안 들었다. 그리고 class를 사용하지 않으면 function A() {} 라는 생성자와 A.prototype 이라는 코딩 영역이 나뉘어져 보기가 상당히 불편하고, 이렇게 코딩 영역이 나뉘어져 코드가 흩어질 수 있다.
- Total
- Today
- Yesterday
- N-step SCAN
- SSTF
- 주식
- 세그먼테이션
- vmin
- PFF
- 파이썬
- 크로스플랫폼
- FCFS
- look
- MoM
- Cocos2d-x
- 스위프트
- C-SCAN
- C-LOOK
- 페이징
- c#
- QT
- 동시성
- 메시지지향미들웨어
- 스와핑
- 고독
- 병렬성
- 섹터 큐잉
- 중요성
- 병행성
- scan
- 차이
- grpc
- 수요
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |