객체 생성자 함수

내장 객체를 생성할 때는 이미 자바스크립트 엔진에 내장되어 있는 객체 생성자 함수를 사용하여 객체를 생성합니다.

객체 생성자 함수

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

let 참조 변수 = {속성 : 새 값, 함수명 : function(){...}}

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 + "<br>")
document.write(result1.b + "<br>")
document.write(result1.c() + "<br>");

document.write(result2.a)
document.write(result2.b + "<br>")
document.write(result2.c())
function CheckWeight(name, height, weight){
    this.userName = name; // let 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("웹쓰", 180, 80);
let lee = new CheckWeight("웹와이", 190, 90);

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

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

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

        func2(youName, youJob);
        func2(youName2, youJob2)

        document.write("<br> <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> <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.study1();
        char6.study2();
    </script>
</body>
</html>

Last updated

Was this helpful?