# 객체 생성자 함수

> 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);

//10020020000자바스크립트실행했습니다.
```

```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 hwang = new CheckWeight  ("웹쓰",170,82);
let lee = new CheckWeight  ("웹와이",190,90);

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

```

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

        document.write(i,"<br>",s);

        document.write("<br><br>");

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

        document.write("<br><br>");

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

        fun2(youName1,youJob1)
        fun2(youName2,youJob2)

        document.write("<br><br>");

        //객체를 선언을 함수로 출력

        function fun3(name,job){
            document.write("내이름은 "+name+"이며, 내직업은"+job+"입니다.<br>");
        }
        const you = [
            {
                name : "웹쓰",
                job : "웹퍼블리셔"
            },
            {
                name : "웹스토리보이",
                job: " 프론트앤드 개발자"
            }
        ];
        fun3(you[0].name, you[0].job);
        fun3(you[1].name, you[1].job);

        document.write("<br><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><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><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><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.study();
        char6.study();

        document.write("<br><br>");

    </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://min0228k.gitbook.io/javascript-jquery/undefined-5/undefined-8.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.
