코어 자바스크립트 06 | 프로토타입

자바스크립트는 프로토타입 기반 언어이다.
클래스 기반 언어에서는 '상속'을 사용하지만 프로토타입 기반 언어에서는 어떤 객체를 원형(원래 형태)으로 삼고 이를 복제(참조)함으로써 상속과 비슷한 효과를 얻는다.


프로토타입의 개념

var instance = new Constructor();
  • 어떤 생성자 함수(new)를 new 키워드와 함께 호출하면

  • 생성자 함수에서 정의된 내용을 바탕으로 새 인스턴스(instance)가 생성된다.

  • 이때 인스턴스에서는 __proto__라는 프로퍼티가 자동으로 부여되는데,

  • __proto__는 Contructor.prototype라는 프로퍼티를 참조한다.


01 var Person = function(name) {
02    this._name = name;
03 };
04 Person.prototype.getName = function() {
05    return this._name;
06 };
07
08 var suzi = new Person('Suzi', 28);
09 suzi.getName();    // Suzi
10 var iu = new Person('Jieun', 28);
11 iu.getName();      // Jieun

__proto__는 생략 가능한 프로퍼티이다. 때문에 생성자 함수의 prototype에 어떤 메서드나 프로퍼티가 있다면 인스턴스에서도 마치 자신의 것처럼 해당 메서드나 프로퍼티에 접근할 수 있다.
=> new 연산자로 Constructor를 호출하면 instance가 만들어지는데, 이 instance의 생략 가능한 프로퍼티인 proto는 Constructor의 prototype을 참조한다.

좋은 웹페이지 즐겨찾기