λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
JavaScript

[JavaScript] ν•¨μˆ˜ μœ ν˜• μ•Œμ•„λ³΄κΈ°

by 코딩곡책 2022. 8. 22.
λ°˜μ‘ν˜•

ν•¨μˆ˜ μœ ν˜•

이번 ν¬μŠ€νŒ…μ—μ„œλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ μž¬ν™œμš© λͺ©μ μœΌλ‘œ μ‚¬μš©λ˜λŠ” ν•¨μˆ˜ μœ ν˜• 7가지λ₯Ό μ‚΄νŽ΄λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.


1. ν•¨μˆ˜ μœ ν˜• : ν•¨μˆ˜μ™€ λ§€κ°œλ³€μˆ˜λ₯Ό μ΄μš©ν•œ ν˜•νƒœ

μž¬ν™œμš© λͺ©μ μœΌλ‘œ μ‚¬μš©λ˜λ©° ν•¨μˆ˜μ™€ λ§€κ°œλ³€μˆ˜λ₯Ό μ΄μš©ν•œ ν˜•νƒœμž…λ‹ˆλ‹€.

function func(num, str1, str2) {
    document.write(num + ". " + str1 + "κ°€ " + str2 + "λ˜μ—ˆμŠ΅λ‹ˆλ‹€. ");
}
func("1", "ν•¨μˆ˜", "μ‹€ν–‰");
func("2", "μžλ°”μŠ€ν¬λ¦½νŠΈ", "μ‹€ν–‰");
func("3", "제이쿼리", "μ‹€ν–‰");   // μ΄λŸ°μ‹μœΌλ‘œ μΆ”κ°€ν•˜λ©΄μ„œ μ†ŒμŠ€ μž¬ν™œμš©μ΄ κ°€λŠ₯함
결과 보기
1. ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
2. μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
3. μ œμ΄μΏΌλ¦¬κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

2. ν•¨μˆ˜ μœ ν˜• : ν•¨μˆ˜μ™€ λ³€μˆ˜λ₯Ό μ΄μš©ν•œ ν˜•νƒœ

μž¬ν™œμš© λͺ©μ μœΌλ‘œ μ‚¬μš©λ˜λ©° ν•¨μˆ˜μ™€ λ§€κ°œλ³€μˆ˜λ₯Ό μ΄μš©ν•œ ν˜•νƒœμž…λ‹ˆλ‹€. λ§€κ°œλ³€μˆ˜λ₯Ό λ§Œλ“€κ³  document.write둜 κ·Έ 자리λ₯Ό 지정해쀀 λ‹€μŒ const μƒμˆ˜λ₯Ό λ§Œλ“€κ³  λ§ˆμ§€λ§‰μ— ν•¨μˆ˜λ‘œ κ·Έ constλ₯Ό μˆœμ„œλŒ€λ‘œ μž…λ ₯ν•΄μ£Όλ©΄ λ§Œλ“€μ–΄λ‘” const 값이 μ•Œμ•„μ„œ μ§€μ •λœ μžλ¦¬μ— λ“€μ–΄κ°€ 좜λ ₯λ©λ‹ˆλ‹€.

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. μ œμ΄μΏΌλ¦¬κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

3. ν•¨μˆ˜ μœ ν˜• : ν•¨μˆ˜μ™€ λ°°μ—΄, 객체λ₯Ό μ΄μš©ν•œ ν˜•νƒœ

μž¬ν™œμš© λͺ©μ μœΌλ‘œ μ‚¬μš©λ˜λ©° ν•¨μˆ˜μ™€ λ°°μ—΄, 객체λ₯Ό μ΄μš©ν•œ ν˜•νƒœμž…λ‹ˆλ‹€. λ§€κ°œλ³€μˆ˜ μ•ˆμ— num, str1, str2λ₯Ό λ§Œλ“€κ³  κ·Έ λ‹€μŒ infoλΌλŠ” μƒμˆ˜ μ•ˆμ— λ°°μ—΄ μ•ˆμ˜ 객체 ν˜•νƒœλ‘œ 데이터λ₯Ό μ €μž₯μ‹œν‚¨ λ‹€μŒ, λ§ˆμ§€λ§‰μœΌλ‘œ func(info[0].num, info[0].name, info[0].com)μ‹μœΌλ‘œ 좜λ ₯μ‹œμΌœμ€λ‹ˆλ‹€.

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. μ œμ΄μΏΌλ¦¬κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

4. ν•¨μˆ˜ μœ ν˜• : 객체 μ•ˆμ— λ³€μˆ˜μ™€ ν•¨μˆ˜λ₯Ό μ΄μš©ν•œ ν˜•νƒœ

μž¬ν™œμš© λΆˆκ°€λŠ₯ν•œ 단점 쑴재

{
    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. μ œμ΄μΏΌλ¦¬κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

5. ν•¨μˆ˜ μœ ν˜• : 객체 생성사 ν•¨μˆ˜ β˜…β˜…β˜…

μž¬ν™œμš© κ°€λŠ₯ν•˜λ„λ‘ 객체+ν•¨μˆ˜ ν•©μΉ¨, 4번 보완, ν•„μš”μ—†λŠ” ν•¨μˆ˜κ°€ μžˆλŠ” κ²½μš°μ—λ„ λͺ¨λ“  ν•¨μˆ˜λ₯Ό 뢈러였느라 λ©”λͺ¨λ¦¬λ₯Ό μ‚¬μš©ν•œλ‹€λŠ” 단점 쑴재

{
    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. μ œμ΄μΏΌλ¦¬κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

6. ν•¨μˆ˜ μœ ν˜• : ν”„λ‘œν† νƒ€μž… ν•¨μˆ˜

5번 단점 보완(λ©”λͺ¨λ¦¬ μ ˆμ•½), ν•¨μˆ˜κ°€ λŠ˜μ–΄λ‚˜λ©΄ λ³΅μž‘ν•΄μ§

{
    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. μ œμ΄μΏΌλ¦¬κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

7. ν•¨μˆ˜ μœ ν˜• : 객체 λ¦¬ν„°λŸ΄ ν•¨μˆ˜

6번 단점 보완, 객체λ₯Ό ν•¨μˆ˜ μ•ˆμ— λͺ¨μ•„λ‘ 

{
    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. μ œμ΄μΏΌλ¦¬κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
λ°˜μ‘ν˜•

λŒ“κΈ€


Reference Book

JavaScript
HTML
CSS
κ΄‘κ³  μ€€λΉ„μ€‘μž…λ‹ˆλ‹€.