[Javascript] ν•¨μˆ˜

[원본 링크]

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” 기본적으둜 ν•¨μˆ˜λ₯Ό 톡해 λͺ¨λ“ˆμ˜ 뢄리와 μž¬μ‚¬μš©μ„ λ‹¬μ„±ν•œλ‹€.(ES6 μ΄μ „κΉŒμ§€)

ν•¨μˆ˜μ˜ ν˜•νƒœλŠ” μ•„λž˜μ™€ κ°™λ‹€.
동적 언어이기 λ•Œλ¬Έμ— νƒ€μž…μ„ ν‘œμ‹œν•˜μ§€ μ•ŠλŠ”λ‹€.

function** ν•¨μˆ˜λͺ…(인자...)**
{ ... }

μ•„λž˜ μ½”λ“œλŠ” 인자λ₯Ό 받지도, λ°˜ν™˜ν•˜μ§€λ„ μ•ŠλŠ” κ°„λ‹¨ν•œ ν•¨μˆ˜λ₯Ό κ΅¬ν˜„ν•œ 것이닀. image

image

μ•„λž˜λŠ” 두 수λ₯Ό λ”ν•΄μ„œ λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜ addλ₯Ό κ΅¬ν˜„ν•œ 것이닀. 별거없닀. image

image


ν•¨μˆ˜μ˜ 객체성
μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” 거의 λͺ¨λ“  것이 객체이닀.
이게 무슨 말이냐 ν•˜λ©΄ ν•¨μˆ˜λ₯Ό λ³€μˆ˜μ— μ €μž₯ν•΄μ„œ λ³€μˆ˜μ²˜λŸΌ λ‹€λ£° μˆ˜κ°€ μžˆλ‹€λŠ” 것이닀.

λŒ€μΆ© μ΄λŸ°μ‹μœΌλ‘œ 말이닀. image

image


읡λͺ…ν•¨μˆ˜
근데 μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” 이름이 μ—†λŠ” ν•¨μˆ˜λ„ 지원을 ν•œλ‹€. 기쑴의 ν•¨μˆ˜ μ„ μ–Έμ—μ„œ ν•¨μˆ˜λͺ…λ§Œ λΉΌλ©΄ λœλ‹€.

μ•„λž˜λŠ” boomμ΄λΌλŠ” λ³€μˆ˜μ— 읡λͺ…ν•¨μˆ˜λ₯Ό ν• λ‹Ήν•œ 것이닀. image

image μ΄λ ‡κ²Œλ§Œ 보면 기쑴의 ν•¨μˆ˜μ„ μ–Έκ³Ό 별 차이가 μ—†μ–΄λ³΄μ΄μ§€λ§Œ... 읡λͺ…ν•¨μˆ˜μ˜ μ§„κ°€λŠ” ν•¨μˆ˜λ₯Ό 인자둜 λ„˜κΈΈ λ•Œ λ°œν•œλ‹€.

μ•„λž˜λŠ” ν•¨μˆ˜λ₯Ό 인자둜 λ°›μ•„μ„œ λ‹¨μˆœ 호좜만 ν•˜λŠ” κ³ μ°¨ν•¨μˆ˜ callerλ₯Ό μ •μ˜ν•˜κ³ , 읡λͺ…ν•¨μˆ˜λ‘œ μ½œλ°±μ„ λ„˜κΈ°λŠ” μ½”λ“œλ‹€. image

image 이걸 기쑴의 μ„ μ–Έλ²•μœΌλ‘œ ν•΄κ²°ν•œλ‹€λ©΄, ν•¨μˆ˜λ₯Ό λ”°λ‘œ μ„ μ–Έν•˜κ³  κ·Έ ν•¨μˆ˜λͺ…을 κΈ°μž…ν•˜λŠ” λ“±μ˜ ν˜Όμž‘ν•¨μ΄ λ°œμƒν•  수 μžˆλ‹€...


λžŒλ‹€μ‹(ES6)
ν™”μ‚΄ν‘œ ν•¨μˆ˜(arrow function)라고도 λΆ€λ₯Έλ‹€.
읡λͺ…ν•¨μˆ˜κ°€ 더 κ°„κ²°ν•˜κ³  μ•„λ¦„λ‹€μ›Œμ§„ ν˜•νƒœλ‹€.
(인자...) => { ... }

μœ„μ˜ ν˜•νƒœλ₯Ό κ°€μ§€μ§€λ§Œ, μ†Œκ΄„ν˜ΈλŠ” μΈμžκ°€ ν•˜λ‚˜μΌ κ²½μš°μ— λΊ„ 수 있고, μ€‘κ΄„ν˜Έλ„ λ‹¨μΌν‘œν˜„μ‹μΈ 경우 λΊ„ 수 μžˆλ‹€.

μœ„μ˜ μ½”λ“œμ— λžŒλ‹€μ‹μ„ μ μš©ν•˜λ©΄ μ΄λ ‡κ²Œ λœλ‹€. image

image μ•„μ£Ό κ°„κ²°ν•˜λ‹€.