loading

자바스크립트(javascript) - arguments 객체, 개념, 사용법, 알기

 

 

이 arguments 객체가 무엇일까?

 

이 arguments 객체는 MDN 사이트에서 정의하는 글을 인용하자면,

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/arguments

 

arguments 객체 - JavaScript | MDN

arguments 객체는 함수에 전달된 인수에 해당하는 Array 형태의 객체입니다.

developer.mozilla.org

arguments 객체는 함수에 전달된 인수에 해당하는 Array 형태의 객체입니다.

자, 그럼 저 arguments 객체가 도대체 무엇인지 예제를 통해서 살펴보자.

function func1() {  
  for(let i = 0; i<arguments.length; i++){
    console.log(arguments[i])
  }
  
  console.log('-->>' + arguments[0], arguments[1], arguments[9]);
}

func1(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

 

이런 코드가 있다고 해보자. 

함수 호출 부분에 func1 매개변수로 1~ 10까지 숫자를 넣어서 호출을 하고 있다.

 

그런데 func1 의 함수 내부를 봐보자.

분명 호출을 할 때에는 10개의 매개변수를 넣어서 호출을 하고 있는데

 

함수 선언된 부분은 매개변수를 받을 매개 인자가 없다.

하지만 위 코드를 실행해보면 console.log의 값들이 찍힐 것이다.

 

 

 

이렇게 함수에 매개변수를 넣어서 호출을 하게되면 저 함수는 받을 인자가 없다 하더라도

arguments 객체에 인수값이 배열의 성격을 띤 객체에 넣어져서 들어가 있다.

 

console.log 가 찍힌 결과이다.

 

 

 

이 처럼 함수 호출에는 받을 인자가 없다 하더라도 arguments 라는 객체에 인자 값으로 넣어서

호출한 값이 배열의 형태를 띤 객체에 값이 넣어져 있다는 것!이라고 이해하면 된다.

 

하지만 arguments 객체는 배열이 아니라는 거에 유의해야 한다.

이처럼 함수내부에 arguments 라는 숨겨진 객체가 있다는 것을 생각하자.

반응형

+ Recent posts