[JavaScript] Prototype

Song-YunMin·2021년 1월 17일
0

JavaScript

목록 보기
2/22
post-thumbnail

ProtyType이란?

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 을 보면 동작 방식을 따로 바꿔서 사용할 수 도 있다.

장점

  • 재사용성을 많이 높일 수 있다.
  • 메소드 사용 용도를 쉽게 바꿀 수 있다.

단점

  • 문법이 좀 복잡하고 직관성이 떨어진다.
profile
고독한 서버 개발 3년차

0개의 댓글