> For the complete documentation index, see [llms.txt](https://pasahu1805.gitbook.io/javascrit-jquery/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pasahu1805.gitbook.io/javascrit-jquery/undefined-2/undefined-8.md).

# 프로토타입 함수

프로토타입(Prototype)의 사전적 의미는 '원형'입니다. 자바스크립트에서 '원형'은 객체 생성자 함수를 의미합니다. 프로토타입을 사용하여 등록한 함수는 원형(객체 생성자 함수)에서 생성된 객체를 공유할 수 있습니다. 즉, 여러 개의 함수를 등록할 필요가 없습니다.

## 프로토타입 함수

> function 함수명(매개변수1,매개변수2,....){\
> &#x20;       this 속성명 = 새 값;\
> }\
> \
> 함수명.prototype.함수명 = function( ){\
> &#x20;       자바스크립트 코드;\
> }\
> \
> let 참조 변수(인스턴스 네임) = new 함수명( );

```javascript
function CheckWeight(name, height, weight){
    this.userName = name;
    this.userHeight = height;
    this.userWeight = weight;
    this.minWeight;
    this.maxWeight;
}
CheckWeight.prototype.getInfoc = function(){
    let str = "";
    str += "이름: " + this.userName + ", ";
    str += "키: " + this.userHeight + ", ";
    str += "몸무게: " + this.userWeight + ", ";
    return str;
}
CheckWeight.prototype.getResult = function(){
    this.minWeight = (this.userHeight - 100) * 0.9 - 5;
    this.maxWeight = (this.userHeight - 100) * 0.9 + 5;

    if( this.userWeight >= this.minWeight && this.userWeight < this.maxWeight){
        return "정상 몸무게입니다.";
    } else if( this.userWeight < this.minWeight){
        return "정상 몸무게보다 미달입니다.";
    } else {
        return "정상 몸무게보다 초과입니다.";
    }
}

let park = new CheckWeight("박상현","182","75");

document.write(park.getInfoc());
document.write(park.getResult());
```
