본문 바로가기
JavaScript

JavaScript - Argument 란 (Feat. caller, callee)

by 새발개발JA 2023. 11. 19.
반응형

 

함수를 공부하다보면 Argument 이야기가 나온다 

Argument 이친구도 알아야겠다 싶어 포스팅를 쓰게 됬는데

caller와 callee 의 개념도 같이 알아야겠다 싶어 소금치듯 같이 뿌려보았다

 

JavaScript - Argument 란 (Feat. caller, callee)

arguments, caller, 그리고 callee는 자바스크립트에서 함수와 관련된 속성이나 개념을 이다.

하지만 callercallee는 현재 사용되지 않거나 사용이 권장되지 않는다고 한다.

(ES5부터는 callercallee의 사용이 제한, strict 모드에서는 arguments.callee가 금지)

 

 

Argument

arguments 는 유사 배열 객체이다

함수를 사용할 떄 매개변수로 여러개를 받는 상황이라면

함수 내부에서 arguments 호출하면 매개변수를 배열처럼 받을 수 있다.

(함수 내 지역변수로 간주 / 유사 배열이라 배열 메소드 사용을 못함)

 

 

caller

현재 실행중인 함수를 호출한 함수를 나타내는 속성이다. (strict 모드에서 사용금지)

function outer() {
  inner();
}

function inner() {
  console.log(inner.caller); // outer 함수를 출력
}

 

 

callee

arguments 내부 속성으로 현재 실행중인 함수를 가리킨다

주로 재귀함수로 자기자신을 참조할 때 사용된다 (strict 모드에서 사용금지)

 

function factorial(n) {
  if (n <= 1) {
    return 1;
  } else {
    return n * arguments.callee(n - 1); // 자기자신을 호출
  }
}

console.log(factorial(5)); // 120

argument 의 객체 내부에 위치. 그리고 지금 실행되는 자기자신을 가리킨다

 

 

반응형

댓글