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

μžλ°”μŠ€ν¬λ¦½νŠΈ : ν•¨μˆ˜μ˜ μœ ν˜•

by μ½”νŒŒμΉ΄ 2022. 8. 22.
728x90

ν•¨μˆ˜μ˜ μœ ν˜•

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ ν•¨μˆ˜μ˜ μœ ν˜•μ€ μ—¬λŸ¬ 가지가 μžˆμŠ΅λ‹ˆλ‹€. μ˜€λŠ˜μ€ λ‹€μ–‘ν•œ ν•¨μˆ˜μ˜ μœ ν˜•μ— λŒ€ν•˜μ—¬ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.


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

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ ν•¨μˆ˜μ˜ νŠΉμ§•μ€ μ‹€ν–‰λ¬Έμ˜ μ§‘ν•©μ²΄λΌλŠ” 점과, μž¬ν™œμš©μ΄ κ°€λŠ₯ν•˜λ‹€λŠ” μ μž…λ‹ˆλ‹€. ν•¨μˆ˜μ™€ λ§€κ°œλ³€μˆ˜λ₯Ό μ΄μš©ν•˜λ©΄, λ‹€μŒκ³Ό 같이 ν•¨μˆ˜λ₯Ό μž¬ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

function func(num, str1, str2){
    document.write(num + ". " + str1 + "κ°€ " +str2 + "λ˜μ—ˆμŠ΅λ‹ˆλ‹€.")
}
func("1", "ν•¨μˆ˜", "μ‹€ν–‰");  // λ§€κ°œλ³€μˆ˜λ₯Ό str1, str2둜 전달
func("2", "μžλ°”μŠ€ν¬λ¦½νŠΈ", "μ‹€ν–‰");
func("3", "제이쿼리", "μ‹€ν–‰");
결과보기
1. ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
2. μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
3. μ œμ΄μΏΌλ¦¬κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

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

같은 λ°©λ²•μœΌλ‘œ, λ³€μˆ˜λ₯Ό 일일이 μ„ μ–Έν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

function func(num, str1, str2){
    document.write(num + ". " + str1 + "κ°€ " + str2 + "λ˜μ—ˆμŠ΅λ‹ˆλ‹€.")
}
const num1 = 1;
const num2 = 2;
const num3 = 3;
const str1 = "ν•¨μˆ˜";
const str2 = "μžλ°”μŠ€ν¬λ¦½νŠΈ";
const str3 = "제이쿼리";
const com1 = "μ‹€ν–‰";
    
func(num1, str1, com1);
func(num2, str2, com1);
func(num3, str3, com1);
결과보기
1. ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
2. μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
3. μ œμ΄μΏΌλ¦¬κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

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

같은 λ°©λ²•μœΌλ‘œ, λ°°μ—΄ μ•ˆμ— μ €μž₯된 객체λ₯Ό 뢈러올 수 μžˆμŠ΅λ‹ˆλ‹€.

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

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. 객체 μƒμ„±μž ν•¨μˆ˜

μœ„μ™€ 같은 방법은 κ°„νŽΈν•˜μ§€λ§Œ, μž¬ν™œμš©μ΄ λΆˆκ°€λŠ₯ν•˜μ—¬ 일일이 ν•¨μˆ˜λ₯Ό μž…λ ₯ν•΄μ€˜μ•Ό ν•œλ‹€λŠ” λΆˆνŽΈν•¨μ΄ μžˆμŠ΅λ‹ˆλ‹€. κ·Έ λΆˆνŽΈμ„ ν•΄μ†Œν•˜κΈ° μœ„ν•΄ 객체와 ν•¨μˆ˜λ₯Ό ν•©μΉ˜λŠ” λ°©λ²•μœΌλ‘œ, const λŒ€μ‹  this둜 λ³€μˆ˜λ₯Ό μ„ μ–Έν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 λ•ŒλŠ” ν•„μˆ˜μ μœΌλ‘œ μΈμŠ€ν„΄μŠ€λ₯Ό 생성해 μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€.

function func(num, name, word){
    this.num = num;  // constλ₯Ό μƒλž΅ν•˜κ³  this μž‘μ„±
    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. ν”„λ‘œν† νƒ€μž… ν•¨μˆ˜

ν”„λ‘œν† νƒ€μž… ν•¨μˆ˜λŠ” 객체 μƒμ„±μž ν•¨μˆ˜μ˜ 단점을 λ³΄μ™„ν•˜μ—¬, ν•¨μˆ˜λ₯Ό 객체 λ°”κΉ₯으둜 κΊΌλ‚΄ μ£Όμ—ˆμŠ΅λ‹ˆλ‹€. λ³€μˆ˜λ₯Ό κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜λ©΄μ„œλ„, ν•„μš”ν•œ κ°’λ§Œ μ‹€ν–‰ν•  수 μžˆκ²Œλ” ν•˜μ—¬ λ§Žμ€ 데이터λ₯Ό μ²˜λ¦¬ν•˜κΈ°μ— 효율적인 λ°©λ²•μž…λ‹ˆλ‹€.

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

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

객체 λ¦¬ν„°λŸ΄ ν•¨μˆ˜λŠ” ν”„λ‘œν† νƒ€μž…μ—μ„œ 더 λ‚˜μ•„κ°€, κΉ”λ”ν•œ μ†ŒμŠ€λ‘œ μž‘μ—…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

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

λŒ“κΈ€

κ°μ‚¬ν•©λ‹ˆλ‹€. πŸ¦™

CSS
κ΄‘κ³  쀀비쀑