LeeWang_31
이왕31
LeeWang_31
전체 방문자
오늘
어제
  • 분류 전체보기 (234)
    • 프로젝트 (2)
      • 사이드 프로젝트 (2)
      • Codestates_pre_project (0)
    • 프론트엔드 (169)
      • Html (19)
      • CSS (18)
      • JavaScript (29)
      • Codestates (76)
      • 코딩노트 (27)
    • 백엔드 (10)
      • node (10)
    • 구르는 돌 🌑 (16)
      • Codestates (11)
      • 생각 (4)
      • 공부 흔적 (1)
    • 정보 (18)
      • 오류노트 (2)
      • 인텔리제이 정보 (9)
      • 깃 정보 (3)
      • 기타 정보 (4)
      • 안드로이드스튜디오 정보 (0)
    • CS (7)
      • 이론공부 (7)
    • App (6)
      • Android (3)
      • Kotlin (3)
    • 컴퓨터 수학 (5)
      • 암호론 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 파이어베이스연동
  • linux
  • 자바스크립트
  • 사이드프로젝트
  • html
  • 안드로이드스튜디오범블비
  • 번들링
  • JavaScript
  • 사용자친화웹
  • 2693
  • 코플릿
  • 2609
  • figjam
  • ubuntu
  • 코드스테이츠
  • TODOlist
  • 생활코딩
  • 알고리즘
  • codestate
  • 사용자 친화 웹
  • UI/UX
  • React
  • css
  • 코딩애플
  • 웹팩
  • 안드로이드스튜디오파이어베이스
  • DP
  • 백준
  • 1292
  • linuix 코드스테이츠

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
LeeWang_31

이왕31

[Javascript] 프로토타입과 클래스
프론트엔드/Codestates

[Javascript] 프로토타입과 클래스

2022. 9. 21. 17:13

코드스테이즈 41기 교육 내용을 정리하고 있습니다.
틀린 부분이 있으면 댓글로 알려주시면 감사하겠습니다.

 

🐘프로토타입과 클래스


JavaScript는 프로토타입 기반 언어 입니다. 여기서 프로토타입(Prototype)은 원형 객체를 의미합니다.

https://developer.mozilla.org/ko/docs/Learn/JavaScript/Objects/Object_prototypes

 

Object prototypes - Web 개발 학습하기 | MDN

Javascript에서는 객체를 상속하기 위하여 프로토타입이라는 방식을 사용합니다. 본 문서에서는 프로토타입 체인이 동작하는 방식을 설명하고 이미 존재하는 생성자에 메소드를 추가하기 위해 프

developer.mozilla.org

MDN문서를 읽고 이해가 잘 가지 않았다.

다른 블로그 포스팅을 보고 좋은 비유가 있어서 가져왔다.

  • prototype (부모입장) : 유전자 : 자손에게 넘겨주고픈 메서드, 변수를 정의 한다
  • _proto_ (자식입장) : 내가 받은 유전자 접근하기, 부모에게 유전받은 prototype을 참조할수 있다.

🦏실습


class Human {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  sleep() {
    console.log(`${this.name}은 잠에 들었습니다`);
  }
}

let steve = new Human('steve', 20);

console.log(Human.prototype);    //a
console.log(steve.__proto__);        //b

console.log(Human.prototype.constructor);    //c
console.log(Human.prototype.sleep === steve.sleep);    //d

a와 b는 동일하게 부모의 유전자 즉, prototype값을 보여준다
Human.prototype === Lee.__proto__를 입력하면 true가 반환된다

 

c는 human class가 나온다.
Human.prototype.constructor === Human를 입력하면 true가 반환된다.

 

d는 ture를 반환한다.

 

다음을 정리하면 그림과 같다.

🐾참고


https://www.youtube.com/watch?v=wUgmzvExL_E

https://intrepidgeeks.com/tutorial/understand-prototype-and-proto-1

 

저작자표시 (새창열림)

'프론트엔드 > Codestates' 카테고리의 다른 글

[Javascript] 비동기  (1) 2022.09.26
[Javascript] 프로토타입 체인  (0) 2022.09.22
[Javascript] 객체 지향 프로그래밍  (1) 2022.09.21
[Javascript] 클로저 모듈 패턴 / 클래스와 인스턴스  (1) 2022.09.21
[Javascript] 고차 함수의 중요성과 추상화  (0) 2022.09.20
    '프론트엔드/Codestates' 카테고리의 다른 글
    • [Javascript] 비동기
    • [Javascript] 프로토타입 체인
    • [Javascript] 객체 지향 프로그래밍
    • [Javascript] 클로저 모듈 패턴 / 클래스와 인스턴스
    LeeWang_31
    LeeWang_31
    이왕 할 거면 기분 좋게

    티스토리툴바