πŸ“† λ‚ μ§œ

2023/12/09(ν† )

πŸ“š 챕터

ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜λŠ” 방법


πŸ‘¨πŸ»β€πŸ’» ν•™μŠ΅ λ‚΄μš©

μ˜€λŠ˜μ€ ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜λŠ” 3κ°€μ§€ 방법에 λŒ€ν•΄ ν•™μŠ΅ν•˜μ˜€λ‹€.

🎯 일반적인 ν•¨μˆ˜ μ„ μ–Έλ¬Έ

<script>
function add(a,b){
return a + b
}
</script>

ν•¨μˆ˜ 선언문은 ν‘œν˜„μ‹μ΄ μ•„λ‹Œ 일반 λ¬Έ(statement)으둜 λΆ„λ₯˜λœλ‹€.
ν‘œν˜„μ‹μ΄λž€ 무언가 값을 μ‚°μΆœν•˜λŠ” ꡬ문을 μ˜λ―Έν•œλ‹€.
즉,μ•žμ„  ν•¨μˆ˜ μ„ μ–ΈμœΌλ‘œλŠ” μ–΄λ– ν•œ 값도 ν‘œν˜„λ˜μ§€ μ•Šμ•˜μœΌλ―€λ‘œ
ν‘œν˜„μ‹μ΄ μ•„λ‹Œ 문으둜 λΆ„λ₯˜λœλ‹€.
ν•¨μˆ˜ 선언문은 말 κ·ΈλŒ€λ‘œ 선언이고 μ–΄λ– ν•œ 값도 ν‘œν˜„ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ ν‘œν˜„μ‹κ³ΌλŠ”
λ‹€λ₯΄κ²Œ λ³€μˆ˜μ— ν• λ‹Ήν•  수 μ—†λŠ” 것이 μžμ—°μŠ€λŸ¬μ›Œ 보인닀.

<script>
const sum = function sum(a,b){
return a + b 
}
sum(5,5)// 10
</script>

κ·ΈλŸ¬λ‚˜ μœ„ μ˜ˆμ œλŠ” 마치 sumμ΄λΌλŠ” λ³€μˆ˜μ— ν•¨μˆ˜ sum을 ν• λ‹Ήν•˜λŠ”,ν‘œν˜„μ‹κ³Ό 같은 μž‘λ™μ„ λ³΄μ˜€λ‹€.
μ™œ μ΄λŸ¬ν•œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” κ²ƒμΌκΉŒ?
μ΄μœ λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진이 μ½”λ“œμ˜ λ¬Έλ§₯에 따라 λ™μΌν•œ ν•¨μˆ˜λ₯Ό 문이 μ•„λ‹Œ ν‘œν˜„μ‹μœΌλ‘œ
ν•΄μ„ν•˜λŠ” κ²½μš°κ°€ 있기 λ•Œλ¬Έμ΄λ‹€.
μœ„μ™€ 같이 이름을 κ°€μ§„ ν˜•νƒœμ˜ ν•¨μˆ˜ λ¦¬ν„°λŸ΄μ€ μ½”λ“œ λ¬Έλ§₯에 따라 μ „μžμ™€ 같은 μ„ μ–Έλ¬Έ 즉,ν‘œν˜„μ‹μœΌλ‘œλ„ μ‚¬μš©λ  수 μžˆμŒμ„ μ•Œκ³  μžˆμ–΄μ•Ό ν•œλ‹€.

🎯 ν•¨μˆ˜ ν‘œν˜„μ‹

ν•¨μˆ˜ ν‘œν˜„μ‹μ— λŒ€ν•΄ μ•Œμ•„λ³΄κΈ° 전에 일급 κ°μ²΄λΌλŠ” κ°œλ…μ„ μ•Œκ³  μžˆμ–΄μ•Ό ν•œλ‹€.
ν”„λ‘œκ·Έλž˜λ° μ„Έκ³„μ—μ„œ 일급 κ°μ²΄λž€ λ‹€λ₯Έ 객체듀에 일반적으둜 적용 κ°€λŠ₯ν•œ 연산을 λͺ¨λ‘
μ§€μ›ν•˜λŠ” 객체λ₯Ό μ˜λ―Έν•œλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ ν•¨μˆ˜λŠ” 일급 객체닀.
μ•žμ„œ ν•¨μˆ˜κ°€ 일급 객체라고 ν–ˆμœΌλ‹ˆ, ν•¨μˆ˜λ₯Ό λ³€μˆ˜μ— ν• λ‹Ήν•˜λŠ” 것은 λ‹Ήμ—°νžˆ κ°€λŠ₯ν•˜λ‹€.
ν•¨μˆ˜ ν‘œν˜„μ‹μ—μ„œλŠ” ν• λ‹Ήν•˜λ €λŠ” ν•¨μˆ˜μ˜ 이름을 μƒλž΅ν•˜λŠ” 것이 μΌλ°˜μ μ΄λ‹€.
μ΄μœ λŠ” μ½”λ“œλ₯Ό 봀을 λ•Œ ν˜Όλž€μ„ λ°©μ§€ν•˜κΈ° μœ„ν•¨μ΄λ‹€.
ν•¨μˆ˜ ν‘œν˜„μ‹μ—μ„œ ν•¨μˆ˜μ— 이름을 μ£ΌλŠ” 것은 ν•¨μˆ˜ ν˜ΈμΆœμ— 도움이 μ „ν˜€ μ•ˆλ˜λŠ”,
μ½”λ“œλ₯Ό μ½λŠ” 데 λ°©ν•΄κ°€ 될 수 μžˆλŠ” μš”μ†Œμž„μœΌλ‘œ ν• λ‹Ήν•˜λ €λŠ” ν•¨μˆ˜μ˜ 이름을 μƒλž΅ν•˜λŠ”κ²Œ μ’‹λ‹€.

πŸŽ―ν™”μ‚΄ν‘œ ν•¨μˆ˜

ES6μ—μ„œ μƒˆλ‘­κ²Œ μΆ”κ°€λœ ν•¨μˆ˜ 생성 방식이닀.
function λŒ€μ‹  => λΌλŠ” ν™”μ‚΄ν‘œλ₯Ό ν™œμš©ν•΄μ„œ ν•¨μˆ˜λ₯Ό μƒμ„±ν•œλ‹€.
κ·ΈλŸ¬λ‚˜ ν™”μ‚΄ν‘œ ν•¨μˆ˜λŠ” 겉보기와 λ‹€λ₯΄κ²Œ μ•žμ„œ μ–ΈκΈ‰ν•œ ν•¨μˆ˜ 생성 방식과 λͺ‡ κ°€μ§€ 큰 차이점이 μžˆλ‹€.

πŸ“Œ ν™”μ‚΄ν‘œ ν•¨μˆ˜μ—μ„œλŠ” constructor μ‚¬μš© λΆˆκ°€λŠ₯

πŸ“Œ ν™”μ‚΄ν‘œ ν•¨μˆ˜μ—μ„œλŠ” argumentsκ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€.

πŸ“Œν΄λž˜μŠ€ν˜• μ»΄ν¬λ„ŒνŠΈμ—μ„œ μ΄λ²€νŠΈμ— 바인딩할 λ©”μ„œλ“œ μ„ μ–Έ μ‹œ ν™”μ‚΄ν‘œ ν•¨μˆ˜λ‘œ ν–ˆμ„ λ•Œμ™€ 일반 ν•¨μˆ˜λ‘œ ν–ˆμ„ λ•Œ μ„œλ‘œ λ‹€λ₯΄κ²Œ μž‘λ™ν•œλ‹€.

  • this | μžμ‹ μ΄ μ†ν•œ κ°μ²΄λ‚˜ μžμ‹ μ΄ 생성할 μΈμŠ€ν„΄μŠ€λ₯Ό κ°€λ¦¬ν‚€λŠ” κ°’
    μΌλ°˜ν•¨μˆ˜ : λ‚΄λΆ€μ˜ μ „μ—­ 객체λ₯Ό 가리킨닀
    ν™”μ‚΄ν‘œ ν•¨μˆ˜ : μƒμœ„ μŠ€μ½”μ˜ thisλ₯Ό κ·ΈλŒ€λ‘œ λ”°λ₯΄κ²Œ λœλ‹€

    ➑️ λ‹€μŒμ€ λ¦¬μ•‘νŠΈμ—μ„œ 자주 μ“°μ΄λŠ” ν•¨μˆ˜λ₯Ό μ‚΄νŽ΄λ³΄μž.

profile
β˜„οΈ

0개의 λŒ“κΈ€

Powered by GraphCDN, the GraphQL CDN