본문 바로가기

Development /JavaScript

[자바스크립트] 프로토타입

프로토타입

프로토타입 예제

Array.prototype.each = function(callback) {

     for(i = 0; i < this.length; i++) {

          callback.prototype = this[i];

          new callback(i);

     }

};

 

var test = [ { name : 'a' }, { name : 'b' }, { name : 'c' } ];

test.each(function(index) {

     alert(index + " = " + this.name);

});

 

Array

자바스크립트 내장 클래스

each

 콜백 함수의 파라미터를 통해 배열에 포함되어 있는 객체들을 차례대로 호출

3,4 : 함수는 클래스와 같다 그래서 this 통해 name 접근 가능하다

 

기본적으로 인스턴스를 생성하지 않았을 프로토타입은 자바스크립트 최상위 Object 클래스를 참조

 

프로토타입 체인

인스턴스 생성시점부터 최상위 클래스까지 순차적으로 연결 되는

 

생성된 인스턴스는 자신의 클래스(또는 함수) 안에서의 'this' 동일하다고 생각하면 된다.

 

프로토타입 체인은 OOP에서의 상속과도 비슷한 개념이라 있다.

 

constructor 프로퍼티

constructor 프로퍼티는 자신의 원형이 되는 클래스를 참조한다.

클래스 내부에서 'new this.constructor();' 처럼 인스턴스를 생성하면 무한루프에 빠지게 된다.

 

* 출처 : 문학청년님의 강의 정리