프로토타입

Index·2022년 12월 4일
0
post-thumbnail

프로토타입

추상화

다양한 속성 중에서 프로그램에 필요한 속성만 간추려 내어 표현하는 것

객체

속성을 통해 여러 개의 값을 하나의 단위로 구성한 복합적인 자료구조,상태데이터와 동작을 하나의 논리적인 단위로 묶은 복합적인 자료구조

객체 생성방식

  • 객체리터럴
  • Object생성자함수
  • 생성자 함수
  • Object.create 메서드
  • 클래스(ES6)

상속

어떤객체의 프로퍼티 또는 메서드를 다른 객체가 상속받아 그대로 사용할 수있는것. 자바스크립트에서는 상속을 구현하여 불필요한 중복 제거하며 코드를 적극적으로 재사용함.

프로토 타입

  • 프로토 타입 객체는 상속을 구현하기위해 사용
  • 프로토타입은 어떤 객체의 상위 객체의 역할을 하는 객체, 다른객체에 공유 프로퍼티를 제공.
  • 프로토 타입 상속받은 하위 객체는 상위 객체의 프로퍼티를 자신의 프로퍼티처럼 자유롭게 사용.
  • 모든 객체는 하나의 프로퍼티 타입을 가지며, 또한 모든 프로토타입은 생성자 함수와 연결되어있음.
  • 모든 객체는 proto접근자 프로퍼티를 통해 자신의 프로토타입,즉[[Prototype]]내부슬롯에 간접적으로 접근.

프로토타입 체인

자바스크립트는 객체의 프로퍼티에 접근하려고 할때 해당객체에 접근하려는 프로퍼티가 없다면[[Prototype]]내부슬롯의 참조를 따라 자신의 부모역할을 하는 프로토타입의 프로퍼티를 순차적으로 검색 이를 프로토타입 체인이라 한다. 프로토타입 체인은 자바스크립트가 객체지향 프로그래밍의 상속을 구현하는 메커니즘. 즉,프로토타입 체인은 상속과 프로퍼티 검색을 위한 메커니즘.

  • 프로토타입 체인은 단방향 링크드 리스트로 구현되어야,프로토타입 체인의 종점은 Object.prototype이며, 이객체의 프로퍼티와 메서드는 모든 객체에 상속됨.
  • 프로토타입 체인vs 스코프 체인 프로토타입 체인:상속과 프로퍼티 검색을 위한 메커니즘. 스코프 체인: 식별자 검색을 위한 메커니즘.

proto접근자 프로퍼티 vs prototype 프로퍼티

구분소유사용주체사용목적
proto접근자 프로퍼티모든객체프로토타입 참조모든객체객체자신의 프로토타입에 접근 또는 교체하기 위해 사용.
prototype 프로퍼티constructor프로토타입 참조생성자 함수생성자 함수가 자신이 생성할 객체(인스턴스)의 프로토타입을 할당하기 위해 사용.

오버라이딩

상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의 해서 사용하는 방식

오버로딩

함수의 이름은 동일하지만 매개변수의 타입 또는 개수가 다른 메서드를 구현하고 매개변수에 의해 메서드를 구별하여 호출하는 방식. 자바스크립트는 오버로딩을 지원하지 않지만 arguments객체를 사용하여 구현할 수는 있다.

0개의 댓글