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 |