자바스크립트의 객체 지향

yoon Y·2022년 8월 25일
0

JS 학습 내용 정리

목록 보기
7/7

자바스크립트의 객체 지향

자바스크립트 탄생

  • 함수형으로 만들고 싶었으나 그 당시 주류였던 객체 지향을 무시할 수 없어
    최대한 간결한 방법으로 객체지향(상속, 추상화, 다형성)을 할 수 있도록 함.
  • no class언어, 상속이 아닌 공유.
  • 객체지향+함수형의 멀티 패러다임.

객체를 생성하는 방법

객체지향 언어

  • class를 선언해야만 생성할 수 있다.

자바스크립트

  • 객체 리터럴로 바로 생성할 수 있다.
    • 객체 리터럴로 생성 시 메소드에서 프로퍼티를 사용하려면 this를 사용하도록 함.
  • function과 new를 이용한 생성.
    • 데이터는 this로 할당
    • 함수는 prototype객체에 할당.
  • 이후 2번 방법이 너무 복잡해 객체지향 class처럼 사용할 수 있는 Class라는 신문법 등장

상속 하는 방법

객체지향 언어

  • class가 통째로 복사된다.
  • 물려받은 class를 자식 class에서 실행해 데이터, 함수를 그대로 반환받아 사용.

자바스크립트(복잡..)

  1. 객체리터럴의 경우
  • 상속받고싶은 object를 찾아가서 사용하기
  • 객체의 proto속성으로 상속받을 객체를 연결
  1. 생성자 함수의 경우
  • 상속받고 싶은 생성자함수의 prototype객체를 자신의 prototype객체의 proto속성과 연결
  1. Class의 경우
  • extend키워드를 사용하면 쉽게 2번을 구현할 수 있음.

JS의 객체지향, 함수형 프로그래밍의 차이

객체지향으로 프로그래밍하기

객체에 데이터와 그 데이터를 사용하는 메소드를 저장해 사용.

함수형으로 프로그래밍하기

데이터를 따로 관리하고, 그 데이터를 사용하려는 함수에 인자로 전달해서 사용.
데이터가 참조타입일 경우 프로퍼티에 직접 접근해서 연산하면 안되고, 새로운 객체로 만들어서 반환해야함 -> 이 특성 때문에 파이프라인 형태의 연속적인 연산을 할 수 있는 것.


출처
자바스크립트에서 객체지향을 하는게 맞나요?
Javascript - 객체지향 프로그래밍과 함수형 프로그래밍의 차이



profile
#프론트엔드

0개의 댓글