도영스 공간

2022.06.12 TIL ( 프로토타입 ) 본문

TIL/2022 TIL

2022.06.12 TIL ( 프로토타입 )

dogdogdodo 2022. 6. 12. 21:15
반응형

🍄 프로토타입의 이해

  • 자바스크립트는 클래스라는 개념이 없습니다.
  • 그래서 기존의 객체를 복사하여 새로운 객체를 생성하는 프로토타입 기반의 언어입니다.
  • 프로토타입 기반 언어는 객체 원형인 프로토타입을 이용하여 새로운 객체를 만들어냅니다.
  • 생성된 객체 역시 또 다른 객체의 원형이 될 수 있습니다.
  • 프로토타입은 객체를 확장하고 객체 지향적인 프로그래밍을 할 수 있게 해줍니다.
  • 프로토타입은 객체를 참조하는 prototype 속성과 객체 멤버인 proto속성이 참조하는 숨은 링크가 있습니다.

🍄 상속, 프로토타입 prototype

👩‍💻 콘솔창에 있는👉__proto__ 이것을 프로토타입이라고 한다.
👩‍💻 proto 는 생성된 객체(new) 또는 json 객체에 존재한다. 
👩‍💻 즉, 상위 객체를 나타내는 속성이다.
👩‍💻 prototype(__proto__의 type)은 자바스크립트 생성자함수(클래스)에 속성 또는 메소드를 추가할때 사용하는 속성이다. 
👩‍💻 객체생성시 prototype을 통해 정의된 속성 또는 메소드는 new 를 통해 객체생성시 공유한다.
👩‍💻 자바스크립트 객체는 Prototype이라는 내부 프로퍼티가 존재한다.
👩‍💻 거의 모든 객체가 생성 시점에 이 프로퍼티에 null이 아닌 값이 할당된다.
    const user={
        name:"riri"
    }
    user.name // "riri"
    user.hasOwnProperty('name'); // true
    user.hasOwnProperty('age'); // false

🍄 함수와 객체의 내부 구조

  • 자바스크립트에서는 함수를 정의하고, 파싱단계에 들어가면 내부적으로 수행되는 작업이 있습니다.
  • 함수 멤버로 prototype속성이 있습니다.
  • 이 속성은 다른 곳에 생성된 함수이름의 프로토타입 객체를 참조합니다.
  • 프로토타입 객체 멤버인 constructor속성은 함수를 참조하는 내부 구조를 가집니다.

🍄 프로토타입 객체란?

  • 함수를 정의하면 다른 곳에 생성되는 프로토타입 객체는 자신이 다른 객체의 원형이 되는 객체입니다.
  • 모든 객체는 프로토타입 객체에 접근할 수 있습니다.
  • 프로토타입 객체도 동적으로 런타임 멤버를 추가할 수 있습니다.
  • 같은 원형을 복사로 생성된 모든 객체는 추가된 멤버를 사용할 수 있습니다.

🍄 프로토타입이란?

  • 자바스크립트에서 기본 데이터 타입을 제외한 모든 것이 객체입니다.
  • 객체가 만들어지기 위해서는 자신을 만드는 데 사용된 원형인 프로토타입 객체를 이용하여 객체를 만듭니다.
  • 이때 만들어진 객체 안에 👉__proto__(비표준) 속성이 자신을 만들어낸 원형을 의미하는 프로토타입 객체를 참조하는 숨겨진 링크가 있습니다.
  • 이 숨겨진 링크를 프로토타입이라고 합니다.

 

 

참고:https://www.nextree.co.kr/p7323/

728x90
반응형
Comments