javascript/λͺ¨λ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ

1.3 ν™”μ‚΄ν‘œ ν•¨μˆ˜μ—μ„œμ˜ arguments

λŒ•λŒ•μ΄λ°œπŸΎ 2018. 12. 3. 15:05


ν™”μ‚΄ν‘œ ν•¨μˆ˜μ˜ νŠΉμ§• 쀑 λ§ˆμ§€λ§‰μž…λ‹ˆλ‹€. 이전 ν¬μŠ€νŒ…μ—μ„œλŠ” thisκ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” μ£Όμ œμ˜€λŠ”λ° λ§ˆμ§€λ§‰μœΌλ‘œλŠ” argumentsκ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” μ£Όμ œμž…λ‹ˆλ‹€. 기본적으둜 javascript μ—μ„œλŠ” arguments λΌλŠ” ν‚€μ›Œλ“œκ°€ μ‘΄μž¬ν•˜λŠ”λ°μš” κ°„λ‹¨ν•œ μ •μ˜λ‘œλŠ”



arguments κ°μ²΄λŠ” ν•¨μˆ˜μ— μ „λ‹¬λœ μΈμˆ˜μ— ν•΄λ‹Ήν•˜λŠ” Array ν˜•νƒœμ˜ κ°μ²΄μž…λ‹ˆλ‹€.

1
2
3
4
5
6
7
8
9
10
11
function func1() {
  console.log(arguments[0]);
  // expected output: 1
 
  console.log(arguments[1]);
  // expected output: 2
 
  console.log(arguments[2]);
  // expected output: 3
}
func1(123);
cs

(좜처 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/arguments)


원본 μ½”λ“œλŠ” func1 ν•¨μˆ˜μ— λ§€κ°œλ³€μˆ˜κ°€ μ •ν•΄μ ΈμžˆλŠ”λ° 일반 function ν˜•νƒœλ‘œ μ“°λ©΄ 빈 λ§€κ°œλ³€μˆ˜ ν˜•νƒœμ˜ ν•¨μˆ˜λ‘œ μž‘μ„±ν•΄μ£Όμ–΄λ„ λ™μΌν•˜κ²Œ λŒμ•„κ°‘λ‹ˆλ‹€. 그럼 이 λ™μΌν•œ μ½”λ“œλ₯Ό ν™”μ‚΄ν‘œν•¨μˆ˜λ‘œ λ°”κΏ”μ„œ μž‘μ„± ν›„ 싀행을 μ‹œμΌœλ³΄λ©΄


arrow.js

1
2
3
4
5
const func1 = ()=>{
    console.log(arguments[0])
}
 
func1(123);
cs


arguments μ •μ˜λ˜μ§€ μ•Šμ•˜λ‹€λŠ” 였λ₯˜κ°€ λœΉλ‹ˆλ‹€. κ·Έλž˜μ„œ es6 λ¬Έλ²•μ—μ„œ μƒˆλ‘­κ²Œ λ“±μž₯ν•œ ν‚€μ›Œλ“œκ°€ μžˆμŠ΅λ‹ˆλ‹€.


1
2
3
4
5
const func1 = (...args)=>{
    console.log(args[0])
}
 
func1(123);
cs

... μ΄λΌλŠ” ν‚€μ›Œλ“œλ‘œ μ •μ˜λœ ν•¨μˆ˜μ˜ μ„ μ–Έμ‹œ λ§€κ°œλ³€μˆ˜ λͺ©λ‘μ„ λ°°μ—΄λ‘œ λ°›κ² λ‹€λŠ” λœ»μž…λ‹ˆλ‹€. 

(args λΌλŠ” ν‚€μ›Œλ“œκ°€ μžˆλŠ” 것은 μ•„λ‹ˆκ³  ... μ΄κ²ƒλ§Œ ν•΄λ‹Ήλ©λ‹ˆλ‹€.)



예λ₯Όλ“€λ©΄ μ΄λŸ°μ‹μœΌλ‘œλ„ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜κ² μ£ ?


1
2
3
4
5
6
const func1 = (...args)=>{
    console.log(args)
}
 
func1(123);
func1(5,6,7,8,9)
cs


ν•¨μˆ˜ ν•˜λ‚˜λ₯Ό μ„ μ–Έ 해도 λ§€κ°œλ³€μˆ˜κ°€ λ‹€λ₯Έ ν•¨μˆ˜λ‘œ 호좜이 κ°€λŠ₯ν•΄μ§‘λ‹ˆλ‹€.




이둜써 ν™”μ‚΄ν‘œν•¨μˆ˜μ— λŒ€ν•œ ν¬μŠ€νŒ…μ„ λ§ˆμΉ˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.