1.3 νμ΄ν ν¨μμμμ arguments
νμ΄ν ν¨μμ νΉμ§ μ€ λ§μ§λ§μ λλ€. μ΄μ ν¬μ€ν μμλ 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(1, 2, 3); | 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(1, 2, 3); | cs |
arguments μ μλμ§ μμλ€λ μ€λ₯κ° λΉλλ€. κ·Έλμ es6 λ¬Έλ²μμ μλ‘κ² λ±μ₯ν ν€μλκ° μμ΅λλ€.
1 2 3 4 5 | const func1 = (...args)=>{ console.log(args[0]) } func1(1, 2, 3); | cs |
... μ΄λΌλ ν€μλλ‘ μ μλ ν¨μμ μ μΈμ λ§€κ°λ³μ λͺ©λ‘μ λ°°μ΄λ‘ λ°κ² λ€λ λ»μ λλ€.
(args λΌλ ν€μλκ° μλ κ²μ μλκ³ ... μ΄κ²λ§ ν΄λΉλ©λλ€.)
μλ₯Όλ€λ©΄ μ΄λ°μμΌλ‘λ μ¬μ©μ΄ κ°λ₯νκ² μ£ ?
1 2 3 4 5 6 | const func1 = (...args)=>{ console.log(args) } func1(1, 2, 3); func1(5,6,7,8,9) | cs |
ν¨μ νλλ₯Ό μ μΈ ν΄λ λ§€κ°λ³μκ° λ€λ₯Έ ν¨μλ‘ νΈμΆμ΄ κ°λ₯ν΄μ§λλ€.
μ΄λ‘μ¨ νμ΄νν¨μμ λν ν¬μ€ν μ λ§μΉλλ‘ νκ² μ΅λλ€.