Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

Javascript에서 함수에 알 수 없는 수의 인수 전달

<시간/>

JavaScript에서 함수를 호출할 때 원하는 수의 인수를 전달할 수 있습니다. 기능 매개변수 제한이 없습니다. 이것은 또한 js에서 전통적인 방식으로 함수를 오버로드할 수 없다는 것을 의미합니다.

arguments 객체는 화살표가 아닌 모든 함수 내에서 사용할 수 있는 지역 변수입니다. arguments 객체를 사용하여 해당 함수 내에서 함수의 인수를 참조할 수 있습니다. 함수가 호출된 각 인수에 대한 항목이 있으며 첫 번째 항목의 인덱스는 0입니다.

예를 들어 함수에 3개의 인수가 전달되면 다음과 같이 액세스할 수 있습니다. -

arguments[0] // first argument
arguments[1] // second argument
arguments[2] // third argument

참고 - 인수는 해당 함수에 전달된 인수의 값을 포함하는 함수 내에서 액세스할 수 있는 배열과 유사한 객체입니다. "배열 유사"는 인수에 길이 속성이 있고 속성이 0부터 인덱싱되지만 forEach() 및 map()과 같은 내장 메서드가 없음을 의미합니다.

예를 들어, 임의의 수의 인수를 허용하려면 다음과 같이 함수를 만들 수 있습니다. -

예시

function printAllArguments(a, b) {
   console.log("First arg: " + a)
   console.log("Second arg: " + b)
   console.log("All args: " + arguments)
}
printAllArguments(1)
printAllArguments(1, "hello")
printAllArguments(1, "hello", 1, "hello")

출력

First arg: 1 
Second arg: undefined 
All args: {"0":1}
First arg: 1
Second arg: hello 
All args: {"0":1,"1":"hello"} 
First arg: 1
Second arg: hello 
All args: {"0":1,"1":"hello","2":1,"3":"hello"}