
객체지향의 객체는 현실에 있는 것을 추상화한 것
현실에 존재하는 것을 코드로 옮기는 것이 아니다!
추상이란 사물이 지니고 있는 여러 측면 중 특정한 부분만 보는것
그 외의 것들은 버린다.
객체 위주로 설계하고 프로그래밍하는 패러다임
추상화의 최소 단위가 객체
각각의 객체는 메시지를 주고 받을 수 있음

출처: 이선협 강사님 데브코스 강의자료
객체지향은 패러다임일 뿐 언어와는 관계가 없다.
언어는 지향하는 것을 편하게 구현하게 도와줄 뿐이다.
클래스가 없는 JavaScript, Go, C 언어로도 객체지향 프로그래밍이 가능하다.
이 중 JavaScript는 프로토타입을 통해 객체지향을 표현한다.
절차지향보다 객체지향이 무조건 더 좋은 것은 아니다.
만들고자 하는 프로그램에 따라 다름
기존의 객체를 복사하여 새로운 객체를 생성하는 방식
프로토타입을 사용하면 하위 객체가 상위 객체를 참조할 수 있게 만들 수 있다.
효율적으로 객체를 사용할 수 있게 만드는 방법이다.
클래스 기반 언어와 같이 속성(Attribute)와 행위(Method)를 정의할 수 있다.
객체 리터럴, Object, 생성자 함수 3가지 방법으로 가능하다.
https://developer.mozilla.org/ko/docs/Learn/JavaScript/Objects/Basics
부모 객체를 이용하여 프로토타입 함수 정의하기
하위 객체로 만들 생성자 함수를 만든 후, 생성자 함수의 프로토타입으로 상위 객체를 대입
상위 객체의 함수가 링크되어 그대로 사용 가능
내부적으로 생성된 프로토타입의 함수는 사용 불가능
부모 생성자를 apply를 통해 빌려 쓸 수 있다.
기존 객체 재활용 가능, 복제
😅 해당 내용은 공부하면서 정리한 글입니다. 틀린 부분이나 오해하고 있는 부분이 있다면 피드백 부탁드립니다.
관련레퍼런스