본문 바로가기
Javascript

함수 유형 02

by 코딩대원 2022. 8. 23.

함수 유형

지난번 함수 시간에 이어서 이번 시간에는 좀 더 복잡한 함수 유형에 대해 알아보겠습니다.


01. 함수와 매개변수를 이용한 형태

함수 : 실행문 집합체, 재활용

{
    function func(num, str1, str2){
        document.write(num + ". " +str1 + "가 "+ str2 +"되었습니다.");
    }
    func("1", "함수", "실행");
    func("2", "자바스크립트", "실행");
    func("3", "제이쿼리", "실행");
}
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

02. 함수와 변수를 이용한 형태

변수를 매개변수에 대입하여 사용합니다.

{
    function func(num, str1, str2){
        document.write(num + ". " +str1 + "가 "+ str2 +"되었습니다.");
    }
    const youNum1 = 1;
    const youNum2 = 2;
    const youNum3 = 3;
    const youStr1 = "함수";
    const youStr2 = "자바스크립트";
    const youStr3 = "제이쿼리";
    const youCom1 = "실행";

    func(youNum1, youStr1, youCom1);
    func(youNum2, youStr2, youCom1);
    func(youNum3, youStr3, youCom1);
}
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

03. 함수와 배열, 객체를 이용한 형태

객체 안의 값을 매개변수로 사용합니다.

{
    function func(num, str1, str2){
        document.write(num + ". " +str1 + "가 "+ str2 +"되었습니다.");
    }
    const info = [
        {
            num : "1",
            name : "함수",
            com : "실행"
        },
        {
            num : "2",
            name : "자바스크립트",
            com : "실행"
        },
        {
            num : "3",
            name : "제이쿼리",
            com : "실행"
        }
    ];

    func(info[0].num, info[0].name, info[0].com);
    func(info[1].num, info[1].name, info[1].com);
    func(info[2].num, info[2].name, info[2].com);
}
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

04. 객체 안에 변수와 함수를 이용한 형태

객체 안에 함수를 넣어서 실행합니다.

{
    const info = {
        num1 : 1,
        name1 : "함수",
        word1 : "실행",
        num2 : 2,
        name2 : "자바스크립트",
        word2 : "실행",
        num3 : 3,
        name3 : "제이쿼리",
        word3 : "실행",

        result1 : function(){
            document.write(info.num1 + ". " + info.name1 + "가 "+ info.word1 + "되었습니다.");
        },
        result2 : function(){
            document.write(info.num2 + ". " + info.name2 + "가 "+ info.word2 + "되었습니다.");
        },
        result3 : function(){
            document.write(info.num3 + ". " + info.name3 + "가 "+ info.word3 + "되었습니다.");
        }
    }

    info.result1();
    info.result2();
    info.result3();
}    
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

05. 객체 생성자 함수

편리함을 위해 객체 생성자 함수가 나왔습니다.

{
    function func(num, name, word){
        this.num = num;
        this.name = name;
        this.word = word;

        this.result = function(){
            document.write(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
        }
    }

    //인스턴스 생성
    const info1 = new func("1", "함수", "실행");
    const info2 = new func("2", "자바스크립트", "실행");
    const info3 = new func("3", "제이쿼리", "실행");

    //실행
    info1.result();
    info2.result();
    info3.result();
}
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

06. 프로트타입 함수

함수를 생성자 함수의 프로토 타입에 추가하여 함수를 사용합니다.

{
    function func(num, name, word){
        this.num = num;
        this.name = name;
        this.word = word;
    }

    func.prototype.result = function(){
        document.write(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
    }

    //인스턴스 생성
    const info1 = new func("1", "함수", "실행");
    const info2 = new func("2", "자바스크립트", "실행");
    const info3 = new func("3", "제이쿼리", "실행");

    //실행
    info1.result();
    info2.result();
    info3.result();
}
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

07. 객체 리터럴 함수

함수가 너무 많아질 경우 함수를 객체로 묶어서 프로토 타입에 추가 할 수 있습니다.

{
    function func(num, name, word){
        this.num = num;
        this.name = name;
        this.word = word;
    }

    func.prototype = {
        result1 : function(){
            document.write(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
        },
        result2 : function(){
            document.write(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
        },
        result3 : function(){
            document.write(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
        }
    }

    //인스턴스 생성
    const info1 = new func("1", "함수", "실행");
    const info2 = new func("2", "자바스크립트", "실행");
    const info3 = new func("3", "제이쿼리", "실행");

    //실행
    info1.result1();
    info2.result2();
    info3.result3();
}
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

'Javascript' 카테고리의 다른 글

요소 크기 속성 / 메서드  (9) 2022.09.01
GSAP  (7) 2022.08.29
charAt()  (4) 2022.08.23
match()  (4) 2022.08.23
search()  (4) 2022.08.23

댓글


HTML
CSS

JAVASCRIPT

자세히 보기