πŸ‘¨πŸ»β€πŸ’» λͺ¨λ˜ λ¦¬μ•‘νŠΈ Deep Dive

pjw__98Β·2023λ…„ 12μ›” 11일
1
post-thumbnail

πŸ“† λ‚ μ§œ

2023/12/11(μ›”)

πŸ“š 챕터

λ¦¬μ•‘νŠΈμ— 자주 μ“°μ΄λŠ” λ‹€μ–‘ν•œ ν•¨μˆ˜ μ‚΄νŽ΄λ³΄κΈ°


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

🎯 μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜

ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜κ³  κ·Έ μˆœκ°„ μ¦‰μ‹œ μ‹€ν–‰λ˜λŠ” ν•¨μˆ˜λ₯Ό μ˜λ―Έν•œλ‹€.
단 ν•œλ²ˆλ§Œ 호좜되고, λ‹€μ‹œκΈˆ ν˜ΈμΆœν•  수 μ—†λŠ” ν•¨μˆ˜λ‹€.

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

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

μ¦‰μ‹œ μ‹€ν–‰ν•¨μˆ˜λŠ” 단 ν•œλ²ˆλ§Œ 호좜 되기 λ•Œλ¬Έμ—
일반적으둜 μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜μ— 이름을 뢙이지 μ•ŠλŠ”λ‹€.
μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜μ˜ νŠΉμ„±μ„ ν™œμš©ν•œλ‹€λ©΄ κΈ€λ‘œλ²Œ μŠ€μ½”ν”„λ₯Ό μ˜€μ—Όμ‹œν‚€μ§€ μ•ŠλŠ” 독립적인
ν•¨μˆ˜ μŠ€μ½”ν”„λ₯Ό μš΄μš©ν• μˆ˜ μžˆλ‹€λŠ” μž₯점을 얻을 수 μžˆλ‹€.

🎯 κ³ μ°¨ ν•¨μˆ˜

<script>
//ν•¨μˆ˜λ₯Ό λ§€κ°œλ³€μˆ˜λ‘œ λ°›λŠ” λŒ€ν‘œμ μΈ κ³ μ°¨ ν•¨μˆ˜ Array.prototype.map
const doubledArray = [1,2,3].map((item) => item *2)

doubledArray // [2,4,6]

//ν•¨μˆ˜λ₯Ό λ°˜ν™˜ν•˜λŠ” κ³ μ°¨ ν•¨μˆ˜μ˜ 예
const add = function (a) {
 // aκ°€ μ‘΄μž¬ν•˜λŠ” ν΄λ‘œμ €λ₯Ό 생성
 return function (b){
 // bλ₯Ό 인수둜 λ°›μ•„ 두 합을 λ°˜ν™˜ν•˜λŠ” 또 λ‹€λ₯Έ ν•¨μˆ˜λ₯Ό 생성
 return a + b
 }
}

add(1)(3) // 4
</script>

μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ ν•¨μˆ˜κ°€ 일급 κ°μ²΄λΌλŠ” νŠΉμ§•μ„ ν™œμš©ν•˜λ©΄ ν•¨μˆ˜λ₯Ό 인수둜 λ°›κ±°λ‚˜ 결과둜 μƒˆλ‘œμš΄ ν•¨μˆ˜λ₯Ό λ°˜ν™˜ μ‹œν‚¬ 수 μžˆλ‹€. 이런 역할을 ν•˜λŠ” ν•¨μˆ˜λ₯Ό κ³ μ°¨ ν•¨μˆ˜(Higher Order Function)라고 ν•œλ‹€.

➑️ λ‹€μŒ κΈ€ μ—μ„œλŠ” ν•¨μˆ˜λ₯Ό 생성 ν•  λ•Œ μ£Όμ˜ν•΄μ•Ό ν•  λͺ‡κ°€μ§€ 사항듀에 λŒ€ν•΄ μ•Œμ•„λ³΄μž.

profile
β˜„οΈ

0개의 λŒ“κΈ€