티스토리 뷰

TIL/Javascript

클래스 vs. 프로토타입

버터호두 2021. 7. 22. 01:28

다음 두 언어 모두 각자의 방식으로 비슷한 효과(정보를 담은 객체의 생성)를 얻는다. 

 

class 기반 언어

'상속'을 사용한다. (ex. java)

객체

  1. '클래스'
    : 객체의 기본적인 틀, 기능을 정의
    : 메소드(동작 방식)의 모임으로 동작
  2. '인스턴스'
    : "사용할 수 있는" 객체, 특정 클래스의 template 기반
    : 모든 인스턴스의 구조는 동일
    : 객체의 자료를 가지고 있음

 

prototype 기반 언어

어떤 객체원형=prototype으로 삼고 이를 복제(참조)한다.

정확히 말하면 복제가 아닌 프로토타입 링크를 통해 원형을 참조한다고.

대부분 interpreter 방식이고 동적 타입 프로그래밍 언어이지만, 정적 타입의 체계가 기술적으로 가능하다. (ex. 오메가)객체

  • 기본 객체 프로토타입 - Object 프로토타입 : 공통 메서드 & 마스터 프로토타입
  • 여러 가지 표본의 동작 방식에 초점
  • 클래스와 비슷한 방식의 "객체의 원형"으로 분류

객체 생성 방법

  1. 원래 있던 객체(prototype)를 '복제'
    : 원래 있던 객체의 프로토타입의 행동을 복제하여 새 객체 생성
    : 새 객체는 원본의 모든 특성을 가지며 수정 가능
  2. 무(無)에서 객체를 생성
    : 객체의 __proto__ 프로퍼티를 null로 지정
    : 새 객체의 슬롯 이름이 최상위의 Object 객체와 네임스페이스 충돌이 일어나지 않는다는 것

 

 

 

https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85_%EA%B8%B0%EB%B0%98_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D#%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85_%EA%B8%B0%EB%B0%98_%EC%96%B8%EC%96%B4_%EB%AA%A9%EB%A1%9D

https://ui.toast.com/weekly-pick/ko_20160603

'TIL > Javascript' 카테고리의 다른 글

클로저  (0) 2021.07.17
this  (0) 2021.07.13
[JS007] 변수명  (2) 2021.06.25
[JS006] Falsy, falsey 가 아닌 것은 Truthy  (0) 2021.06.25
[JS005] for문 계산  (0) 2021.06.25
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함