# 객체 생성자 함수

## 객체 생성자 함수

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

```javascript
function obj5(a, b){
    this.a = a;
    this.b = b;
    this.c = function(){
        return a * b;
    }
}

let result1 = new obj5(100, 200);
let result2 = new obj5("자바스크립트", "실행했습니다.");

document.write(result1.a);
document.write(result1.b);
document.write(result1.c());
document.write(result2.a);
document.write(result2.b);
```

```javascript
function CheckWeight(name, height, weight){
    this.userName = name;
    this.userHeight = height;
    this.userweight = weight;
    this.minWeight;
    this.maxWeight;
    this.getInfo = function(){
        let str = "";
        str += "이름: " + this.userName + ", ";
        str += "키: " + this.userHeight + ", ";
        str += "몸무게: " + this.userweight + ", ";
        return str;
    }
    this.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 hong = new CheckWeight("고부기", 175, 90);
let young = new CheckWeight("거부기", 185, 85);
console.log(hong);

document.write(hong.getInfo());
document.write(hong.getResult());

//이름: 고부기, 키: 175, 몸무게: 90, 정상 몸무게보다 초과입니다.
```

```javascript
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jquery12</title>
    <script>
        //"내 이름은 웹쓰이며, 직업은 웹 퍼블리셔입니다."
        //"내 이름은 도하은이며, 내일 자기소개 할겁니다."
        document.write("내 이름은 웹쓰이며, 직업은 웹 퍼블리셔입니다.<br>");
        document.write("내 이름은 도하은이며, 내일 자기소개 할겁니다.<br><br>");

        //매개변수가 있는 함수로 출력
        function func1(name, job){
            document.write("내 이름은 " + name +"이며, 직업은 " + job + "입니다.<br>");
        }
        func1("웹쓰", "웹 퍼블리셔");
        func1("도하은", "자기소개");

        document.write("<br>")

        //변수를 선언하고 함수로 출력
        function func2(name, job){
            document.write("내 이름은 " + name +"이며, 직업은 " + job + "입니다.<br>");
        }
        let youName1 = "웹쓰";
        let youJob1 = "웹 퍼블리셔";
        let youName2 = "도하은";
        let youJob2 = "자기소개";

        func2(youName1, youJob1);
        func2(youName2, youJob2);

        document.write("<br>")

        //객체를 선언하고 함수로 출력
        function func3(name, job){
            document.write("내 이름은 " + name +"이며, 직업은 " + job + "입니다.<br>");
        }

        const you = [
            {
                name: "웹쓰",
                job: "웹 퍼블리셔"
            }, 
            {
                name: "웹스토리보이",
                job: "프론트엔드 개발자"
            }];

        func3(you[0].name, you[0].job);
        func3(you[1].name, you[1].job);

        document.write("<br>")


        //객체 + 메서드
        const you2 = {
            name1: "웹쓰",
            job1: "웹 퍼블리셔",
            name2: "웹스토리보이",
            job2: "프론트엔드 개발자",
            study1 : function(){
                document.write("내 이름은 " + this.name1 +"이며, 직업은 " + this.job1 + "입니다.<br>");
            },
            study2 : function(){
                document.write("내 이름은 " + this.name2 +"이며, 직업은 " + this.job2 + "입니다.<br>");
            }
        }

        you2.study1();
        you2.study2();

        document.write("<br>")

        //객체 생성자 함수(함수 + 인스터스 객체(매개변수))
        function You3(name, job){
            this.name = name;
            this.job = job;
            this.study = function(){
                document.write("내 이름은 " + this.name +"이며, 직업은 " + this.job + "입니다.<br>");
            }
        }
        let char1 = new You3("웹쓰", "웹 퍼블리셔"); 
        let char2 = new You3("웹스토리보이", "프론트앤드 개발자"); 

        char1.study();
        char2.study();

        document.write("<br>")

        //프로토타입 메서드
        function You4(name, job){
            this.name = name;
            this.job = job;
        }
        You4.prototype.study = function(){
            document.write("내 이름은 " + this.name +"이며, 직업은 " + this.job + "입니다.<br>");
        }

        let char3 = new You4("웹쓰", "웹 퍼블리셔"); 
        let char4 = new You4("웹스토리보이", "프론트앤드 개발자"); 

        char3.study();
        char4.study();

        document.write("<br>")

        //객체 리터럴
        function You5(name, job){
            this.name = name;
            this.job = job;
        }
        You5.prototype = {
            study1 : function(){
                document.write("내 이름은 " + this.name +"이며, 직업은 " + this.job + "입니다.<br>");
            },
            study2 : function(){
                document.write("내 이름은 " + this.name +"이며, 직업은 " + this.job + "입니다.<br>");
            }
        }
        let char5 = new You5("웹쓰", "웹 퍼블리셔"); 
        let char6 = new You5("웹스토리보이", "프론트앤드 개발자"); 

        char5.study1();
        char6.study2();

    </script>
</head>
<body>
    
</body>
</html>
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hgy5710.gitbook.io/javascript-jquery/undefined-2/undefined-7.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
