본문 바로가기

코드스테이츠

2021년 5월 10일 코드스테이츠 DAY-36 객체 지향 프로그래밍 정리

반응형

객체 지향 프로그래밍의 특징 4가지

 

  • 캡슐화 : 실제 객체 모습의 추상화를 위하여 데이터와 기능을 모았다.
  • 추상화 : 메소드로 예를 들면 내부에 어떤 로직이 있는지 자세히 몰라도 메소드의 이름만 보고도 기능을 짐작할 수 있게하는 것 
  • 상속 : 자식 클래스에서 부모 클래스의 속성과 메소드를 활용할 수 있다. 
  • 다향성 : 클래스는 하나더라도 인스턴스는 다양한 다른 키 값을 갖는다. 

 

객체 지향과 자바스크립트

 

  • 자바스크립트는 객체 지향 언어인가? 아니다.
  • 자바스크립트는 객체 지향 프로그래밍을 할 수 있는가? 맞다.
  • 면접 질문 시 예상 대답 : "자바스크립트는 객체 지향 언어는 아니고 프로토타입 지향 언어라고 들었습니다. 프로토타입에 대해서 깊게 알고 있지는 않지만, 다르다는 점을 알고 있습니다. 자바스크립트에서 객체 지향 프로그래밍을 하려면 class 키워드를 사용해야 합니다."
  • 모듈화는 객체 지향으로 코드를 작성하는 그 자체이다. 

클래스 생성과 prototype, __proto__

 

  • class 선언 시(클래스 이름을 Human이라고 가정) Human.prototype이 생김
  • Human.prototype이라는 객체에는 클래스 생성 시 작성한 constructor와 메소드 정보가 담겨있음
  • new 키워드로 daniel 인스턴스를 생성하면 daniel.__proto__를 확인할 수 있음.
  • __proto__를 통해서 Human.prototype에 있는 속성과 메소드를 참조할 수 있음.  
  • 즉 daniel.__proto__ === Human.prototype, Human.prototype.sleep === daniel.sleep(여기서 sleep은 메소드)

 

 

반응형