반응형
함수를 공부하다보면 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
반응형
'JavaScript' 카테고리의 다른 글
JavaScript - 마우스 커서에 달린 툴팁 최적화하기 (mousemove) (1) | 2024.02.01 |
---|---|
JavaScript - 애니메이션 최적화하기 (requestAnimationFrame) (0) | 2024.02.01 |
JavaScript - 표현식 (2) | 2023.11.17 |
JavaScript - throw / try / catch / finally (1) | 2023.11.14 |
JavaScript - Call By Value, Call By Reference (3) | 2023.11.09 |
댓글