본문 바로가기

javascript 이론/객체지향 프로그래밍

2. prototype

function Person(name, first, second) {
  this.name = name;
  this.first = first;
  this.second = second;
}

Person.prototype.sum = function () {
  return "prototype :" + (this.first + this.second);
};

const lee = new Person("lee", 10, 10);
const choi = new Person("choi", 10, 30);

console.log("lee.sum()", lee.sum());
console.log("choi.sum()", choi.sum());

// prototype이 아닌 여기만 특수한 메소드 사용해보기
const kim = new Person("kim", 10, 20);
kim.sum = function () {
  return "this : " + (this.first + this.second);
};
console.log("kim.sum()", kim.sum());

 

 

프로토타입이란? 

 

프로토 타입의 의미는 객체가 생성될때마다 해당 객체의 메소드를 만들어 메모리에 할당을 해야 하는데 그렇게 하지않고 생성자의 프로토타입에 정의함으로서 다른 모든 객체들이 참조하여 사용할 수 있도록 하여 메모리를 효율적으로 사용할 수 있도록 하는 장점과 메소드의 재정의가 필요한 객체들은 상황에 맞게 자신만 사용가능한 메소드를 재정의 할 수 있어 유지보수에도 많은 도움이 됩니다.

'javascript 이론 > 객체지향 프로그래밍' 카테고리의 다른 글

5. 정리  (0) 2022.10.06
4. 객체가 부모를 참고하는 원리  (0) 2022.10.06
3. class, super  (1) 2022.10.05
1. constructor  (0) 2022.10.05