ν‹°μŠ€ν† λ¦¬ λ·°

ν•¨μˆ˜ μœ ν˜• (Function Type)

ν•¨μˆ˜λŠ” ν”„λ‘œκ·Έλž¨μ—μ„œ 반볡적으둜 μ‚¬μš©λ˜λŠ” κΈ°λŠ₯을 λ§Œλ“€μ–΄ λ‚΄κΈ° μœ„ν•œ μ½”λ“œλ“€μ˜ μ§‘ν•©


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

μ½”λ“œλ₯Ό μž¬ν™œμš©ν•˜κΈ° μœ„ν•΄ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•œλ‹€.

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

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

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 youCom = "μ‹€ν–‰"; func(youNum1, youStr1, youCom); //1. ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. func(youNum2, youStr2, youCom); //2. μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. func(youNum3, youStr3, youCom); //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) //1. ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. func(info[1].num, info[1].name, info[1].com) //2. μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. func(info[2].num, info[2].name, info[2].com) //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(); //1. ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. info.result2(); //2. μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. info.result3(); //3. μ œμ΄μΏΌλ¦¬κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

5. ν•¨μˆ˜ μœ ν˜• : 객체 μƒμ„±μž ν•¨μˆ˜*****

κΈ°μ‘΄ ν•¨μˆ˜μ— new μ—°μ‚°μžλ₯Ό λΆ™μ—¬μ„œ ν˜ΈμΆœν•˜λ©΄, ν•΄λ‹Ή ν•¨μˆ˜λŠ” μƒμ„±μž ν•¨μˆ˜λ‘œ λ™μž‘ν•©λ‹ˆλ‹€.
λ¦¬ν„°λŸ΄κ³Ό Obejct()둜 객체λ₯Ό μƒμ„±ν•˜λŠ” 것과 달리, μƒμ„±μž ν•¨μˆ˜λ₯Ό 톡해 객체λ₯Ό μƒμ„±ν•˜λ©΄ 같은 속성을 κ°€μ§„ 객체λ₯Ό μ—¬λŸ¬ 개 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.
μƒμ„±μž ν•¨μˆ˜λ‘œ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜κΈ° 전에, λ¨Όμ € λΉ„μ–΄μžˆλŠ” 객체λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.

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(); //1. ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. info2.result(); //2. μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. info3.result(); //3. μ œμ΄μΏΌλ¦¬κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

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

ν•¨μˆ˜ ν”„λ‘œν† νƒ€μž… 은 EGL μ‹œμŠ€ν…œ μ½”λ“œκ°€ ν•¨μˆ˜ μžμ²΄μ— μ•‘μ„ΈμŠ€ν•˜μ§€ λͺ»ν•˜λŠ” 경우 ν•¨μˆ˜ ν˜ΈμΆœμ— λŒ€ν•΄ μœ ν˜• 검사λ₯Ό μˆ˜ν–‰ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” μ •μ˜μž…λ‹ˆλ‹€.
ν•¨μˆ˜ ν”„λ‘œν† νƒ€μž…μ€ function ν‚€μ›Œλ“œλ‘œ μ‹œμž‘ν•œ λ‹€μŒ ν•¨μˆ˜ 이름, ν•΄λ‹Ή λ§€κ°œλ³€μˆ˜(μžˆλŠ” 경우), 리턴값(μžˆλŠ” 경우)을 λ‚˜μ—΄ν•©λ‹ˆλ‹€.

function func(num, name, word){ 
    this.num = num; //constλ₯Ό μƒλž΅ν•˜κ³ , thisλ₯Ό μ‚¬μš©ν•¨μœΌλ‘œμ¨ λ³€μˆ˜ μž¬ν™œμš©κ°€λŠ₯ 
    this.name = name;
    this.word = word;
}

//resultλ₯Ό ν•¨μˆ˜ λ°–μœΌλ‘œ 빼쀌 
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(); //1. ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. info2.result(); //2. μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. info3.result(); //3. μ œμ΄μΏΌλ¦¬κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

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

μžλ°”μŠ€ν¬λ¦½νŠΈ ν•¨μˆ˜λŠ” μ‹λ³„μž 없이 ν•¨μˆ˜ κ·Έ 자체λ₯Ό 객체 νƒ€μž…μ˜ κ°’μœΌλ‘œ λ¦¬ν„°λŸ΄λ‘œ 생성이 κ°€λŠ₯ν•©λ‹ˆλ‹€.
객체 νƒ€μž…μ˜ κ°’μœΌλ‘œ μƒμ„±λœ ν•¨μˆ˜ λ¦¬ν„°λŸ΄μ˜ 레퍼런슀λ₯Ό λ³€μˆ˜μ— λŒ€μž…ν•΄μ€ŒμœΌλ‘œμ¨ , λ³€μˆ˜λͺ…(인자λͺ©λ‘) 의 λ°©λ²•μœΌλ‘œλ„ 호좜이 κ°€λŠ₯ν•˜κ³ , ν•œλ²ˆλ§Œ ν˜ΈμΆœν•˜κ³  λ‹€μ‹œ ν˜ΈμΆœν•  수 μ—†λŠ” μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜ (ν•¨μˆ˜ λ¦¬ν„°λŸ΄)μœΌλ‘œλ„ ν˜ΈμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 function func(num, name, word){ 
    this.num = num; //constλ₯Ό μƒλž΅ν•˜κ³ , thisλ₯Ό μ‚¬μš©ν•¨μœΌλ‘œμ¨ λ³€μˆ˜ μž¬ν™œμš©κ°€λŠ₯ 
    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(); //1. ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. info2.result2(); //2. μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. info3.result3(); //3. μ œμ΄μΏΌλ¦¬κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

'Javascript' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

search( )  (1) 2022.08.22
search( )  (1) 2022.08.22
includes()  (2) 2022.08.17
padStart() | padEnd()  (1) 2022.08.17
repeat()  (2) 2022.08.17
곡지사항