javascript의 prototype

c08h·2019년 10월 29일
0

javascript의 핵심 개념 prototype에 대해서 알아보도록 하겠습니다.

  • prototype
  • constructor
  • __proto__

constructor 생성자 함수에 new 연산자를 써서 instance를 생성하면 생성자 함수의 prototype이라는 프로퍼티가 instance의 __proto__ 에 전달 됩니다.

즉 생성자 함수의 prototype과 인스턴스의 __proto__ 는 같은 객체를 참조합니다.
인스턴스의 내부 메소드, 프로퍼티에 접근할 때 __proto__ 를 생략할 수 있습니다.

예를들어 const arr = [1, 2, 3, 4]; arr라는 변수를 선언하고 리터럴 방식으로 배열을 할당하였습니다. (리터럴 방식 배열 생성, new Array(), Array()모두 동등합니다.)

이때 리터럴로 만들어진 배열의 prototype 객체가 arr 인스턴스의 __proto__에 전달됩니다.
배열 Array의 prototype 객체 내부에는 흔히 알고있는 filter(), forEach(), map(), push() 등등..메소드들이 내장되어있습니다.

그래서 배열의 인스턴스 arr에서 다음과 같은 메소드 사용이 가능하게 됩니다.
arr.push(1) (__proto__ 생략)

profile
나는 좋아한다 프론트엔드 개발을

0개의 댓글