본 내용은 프로그래머스의 코딩테스트 광탈 방지 A to Z : JavaScript 강의를 토대로 작성하였습니다.
1. 객체지향의 객체
- 객체지향의 객체는 현실에 있는 것을 추상화
2. 추상이란?
- 사물이 지니고 있는 여러 측면 중 특정한 부분만 보는 것
- 그 외의 필요없는 부분은 버림
3. 객체지향이란?
- 객체 위주로 설계하고 프로그래밍하는 패러다임
- 객체지향 언어에선 추상화의 최소 단위가 객체
- 각각의 객체는 메시지를 주고받을 수 있음
4. 객체지향의 오해
- 객체지향은 패러다임일 뿐
- 언어는 지향하는 것을 조금 더 편하게 구현할 수 있게 도와줄 뿐
- JavaScript, Go, C로도 객체지향 프로그래밍을 할 수 있음
- JavaScript는 프로토타입을 통해 객체지향을 표현
- 상황에 따라 적합한 패러다임이 있는 것일 뿐, 어떤 패러다임이 우월한 것이 아님
- 간단한 프로그래임일 수록 절차지향이 더 만들기 쉽고 직관적
- 객체지향은 객체간 통신하기 때문에, 흐름이 더 직관적이어서 더 복잡한 프로그램에 적합
5. 프로토타입
JavaScript의 객체
- 클래스 기반 언어처럼 속성과 행위를 정의할 수 있음
- 객체 리터럴, Object, 생성자 함수 세 가지 방법을 이용할 수 있음
프로토타입이란
- 클래스에 정의된 메서드라도 각 인스턴스에서 따로 생성된다면, 메모리를 낭비
- 프로토타입은 기존의 객체를 복사하여 새로운 객체를 생성하는 방식
- 하위 객체는 proto 객체를 내부적으로 가지는데, 이 객체가 상위 객체를 가리킴
- 기존 객체를 효율적으로 사용할 수 있음
효율적인 프로토타입
- 상속 흉내내기
- 부모 객체를 이용하여 프로토타입 함수 정의
- 부모 생성자를 빌려쓰기
- Object.create: 기존 객체를 재활용할 수 있음
Reference
'programming study > Computer Science' 카테고리의 다른 글
기초 JS, CS 상식 - 컴퓨터 시간 (0) | 2022.11.26 |
---|---|
기초 JS, CS 상식 - 네트워크 기초 (0) | 2022.11.25 |
기초 JS, CS 상식 - 함수형 프로그래밍 (0) | 2022.11.23 |
기초 JS, CS 상식 - 암호화 기초 (0) | 2022.11.22 |
기초 JS, CS 상식 - 유니코드 (0) | 2022.11.20 |