모든 자바스크립트 객체는 그것의 프로토타입 객체에 대한 내부 참조를 가지고 있으며, 프로토타입 객체로부터 프로퍼티를 상속받는다.
모든 함수는 함수가 정의됐을 때 자동으로 생성되고 초기화되는 prototype 프로퍼티를 가지고 있다.
이러한 프로토타입 객체에 추가하는 프로퍼티는 생성자로 초기화된 객체 프로퍼티로 나타난다.
자바스크립트 프로토타입 예제는 다음과 같다.
function Point(x,y){ this.x = x; this.y = y; } Point.prototype.add = function(){ return this.x + this.y; } point1 = new Point(5,5); point2 = new Point(8,8); console.log(point1.add()); // 10 console.log(point2.add()); // 16
메서드와 프로퍼티는 객체가 생성된 이후에도 프로토타입에 추가될 수 있다. 다음 예제를 보자.
function Point(x,y){ this.x = x; this.y = y; } // 객체를 먼저 생성 point1 = new Point(5,5); point2 = new Point(8,8); // 프로토타입에 메서드를 추가 Point.prototype.add = function(){ return this.x + this.y; } console.log(point1.add()); // 10 console.log(point2.add()); // 16
자바스크립트 프로토타입의 이점은 다음과 같다.
← 이전 | 홈 | 다음 → |