객체지향과 프로토타입

Jun 2k (Jun2)·2023년 9월 21일

CS공부

목록 보기
5/8
post-thumbnail

객체지향의 객체란?

객체지향의 객체는 현실에 있는 것을 추상화한 것
현실에 존재하는 것을 코드로 옮기는 것이 아니다!

추상이란 사물이 지니고 있는 여러 측면 중 특정한 부분만 보는것
그 외의 것들은 버린다.


객체지향

객체 위주로 설계하고 프로그래밍하는 패러다임
추상화의 최소 단위가 객체
각각의 객체는 메시지를 주고 받을 수 있음


출처: 이선협 강사님 데브코스 강의자료


객체지향의 오해

오해 1

객체지향은 패러다임일 뿐 언어와는 관계가 없다.
언어는 지향하는 것을 편하게 구현하게 도와줄 뿐이다.
클래스가 없는 JavaScript, Go, C 언어로도 객체지향 프로그래밍이 가능하다.
이 중 JavaScript는 프로토타입을 통해 객체지향을 표현한다.

오해 2

절차지향보다 객체지향이 무조건 더 좋은 것은 아니다.
만들고자 하는 프로그램에 따라 다름

  • 간단한 프로그램은 절차지향이 더 만들기 쉽고 직관적이다.
  • 복잡한 프로그램은 객체간 통신이 가능하고 흐름이 직관적인 객체지향이 편리하다.

프로토타입

기존의 객체를 복사하여 새로운 객체를 생성하는 방식
프로토타입을 사용하면 하위 객체가 상위 객체를 참조할 수 있게 만들 수 있다.
효율적으로 객체를 사용할 수 있게 만드는 방법이다.


자바스크립트의 객체

클래스 기반 언어와 같이 속성(Attribute)행위(Method)를 정의할 수 있다.


객체 생성 방법

객체 리터럴, Object, 생성자 함수 3가지 방법으로 가능하다.
https://developer.mozilla.org/ko/docs/Learn/JavaScript/Objects/Basics


Effective Prototype

1. 상속 흉내내기(1)

부모 객체를 이용하여 프로토타입 함수 정의하기
하위 객체로 만들 생성자 함수를 만든 후, 생성자 함수의 프로토타입으로 상위 객체를 대입
상위 객체의 함수가 링크되어 그대로 사용 가능
내부적으로 생성된 프로토타입의 함수는 사용 불가능

2. 상속 흉내내기(2)

부모 생성자를 apply를 통해 빌려 쓸 수 있다.


Object.create

기존 객체 재활용 가능, 복제



😅 해당 내용은 공부하면서 정리한 글입니다. 틀린 부분이나 오해하고 있는 부분이 있다면 피드백 부탁드립니다.

관련레퍼런스

객체지향의 사실과 오해 책

profile
유리프트 프론트엔드

0개의 댓글