JavaScript
JavaScript - Argument 란 (Feat. caller, callee)
새발개발JA
2023. 11. 19. 14:00
반응형
함수를 공부하다보면 Argument 이야기가 나온다
Argument 이친구도 알아야겠다 싶어 포스팅를 쓰게 됬는데
caller와 callee 의 개념도 같이 알아야겠다 싶어 소금치듯 같이 뿌려보았다
JavaScript - Argument 란 (Feat. caller, callee)
arguments, caller, 그리고 callee는 자바스크립트에서 함수와 관련된 속성이나 개념을 이다.
하지만 caller와 callee는 현재 사용되지 않거나 사용이 권장되지 않는다고 한다.
(ES5부터는 caller와 callee의 사용이 제한, 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
반응형