Prototype은 (원형) 이란 뜻이며, 자바스크립트의 중고급 수준까지 올라가기 위해 필수적인 문법이다. 이러한 Prototype을 이용하여 재사용성이 높은 코드를 작성할 수 있다.
자바스크립트는 Prototype Based Language 이라고도 불린다.
function Person(name, first, second, third) {
this.name = name;
this.first = first;
this.second = second
this.third = third;
}
// 한번만 정의됨 : 성능 절약
Person.prototype.sum = function () {
return 'modified : ' + (this.first + this.second + this.third);
}
let kim = new Person('kim',10,20,30);
kim.sum = function(){ // kim 만 동작을 다르게 정의할 수 있음
return 'this : ' + (this.first+this.second+this.third);
}
let lee = new Person('lee',10,10,10);
console.log("kim.sum()", kim.sum()); // this : 60
console.log("lee.sum()", lee.sum()); // modified : 30
함수 Person
을 만들고 생성자를 이용하여 초기화 한다.
그 후에 메소드 sum
을 protytype(원형) 으로 정의하여 위와 같이 사용할 수 있다.
Person
의 인스턴스인 kim
을 보면 동작 방식을 따로 바꿔서 사용할 수 도 있다.