코드스테이츠 복기 (OOP IN JS)

ytu1025·2021년 4월 9일
0

오늘은 OOP를 정리하여 블로그에 나만의 언어로 정리해보자!

  • 개념 정리
    --
    OOP = Object Oriented Programming
    객체 지향적 프로그래밍이란 무엇이냐
    일단 하나하나 명령을 주고 임무를 맡기기엔 너무 귀찮다 나도 귀찮고 컴퓨터도 귀찮다 그래서 틀을 만들어준다 예를들어 붕어빵을 만들기위한 틀이나 자동차를 만들기위한 틀 등 공장에서 프레스로 찍는 금형을 예로들수있지만 내가 가장 이해가 잘된 예는 학교에서 대청소를 하는 상황이다 복도청소부, 창문닦이 등을 지정하고 지정한 임무에 아이템들과 조건들을 걸어놓고 사람을 지정하며 임무를 맡기는것이다 이처럼 연관된 변수와 함수를 묶어서 구조화하여 표현한? 느낌이다
  • 4가지 특성
    --
  1. 캡슐화
    데이터와 기능을 하나의 단위로 묶는 것, 내부의 기능이나 어떻게 돌아가는지 숨기는 은닉화의 성질도 지닌다.
  2. 추상화
    코드자체로 보기엔 아주 복잡하지만 실제로 보이는 것은 단순하게 만든다.
  3. 상속
    부모 클래스의 특징을 자식이 물려받는다.
  4. 다향성
    하나의 객체를 여러개의 객체에 대입하여 해석할수있다.
  • class는 무엇인가
    --
    class와 객체는 악어새와 악어의 느낌이다 위에서 말한 여러 틀들이 class이다
    관련된 변수들과 함수들을 class로 묶어서 틀을 완성하는 것이다 그리고 여기서 this를 이용하여 class안에 변수와 함수에 접근할수있다 이처럼 세부사항을 넣은 객체가 되면 instance가 되는데 new 를 활용하여 새로운 데이터를? 만들어서 instance를 만드는 것 같다

-세부사항이 들어가지않은 틀 = class
-세부사항을 넣은 객체 = instance
-세부사항을 넣는 생성자 = constructor
-class내에 정의된 변수 = property
-class내에 정의된 함수 = method

  • javascript의 Prototype ?
    --
    javascript의 객체지향 프로그램밍의 정말 중요한 개념이다
    예를 들어 새로운 객체를 만들려고할때 new를 이용하여 새로운 생성자를 만드는데 새로운걸 만들고싶지만 기존에 있던 개념들을 포함시키고 싶은 마음에 prototype으로 기존에 있던 개념들을 불러오거나 추가를 시킨다

내가 가장이해가 잘됬던 예시

function Ultra(){}
Ultra.prototype.ultraprop = true

function Super(){}
Super.prototype = new Ultra()

function Sub(){}
Sub.prototype = new Super()

var o = new Sub()
console.log(o.ultraprop) 
= true
profile
멋진 사람이 되고 싶습니다.

관심 있을 만한 포스트

0개의 댓글