1. 발신자
현재 함수를 호출하는 함수에 대한 참조를 반환합니다.
functionName.Caller
functionName 객체는 실행 된 함수의 이름입니다.
설명
함수의 경우 발신자 속성은 함수가 실행될 때만 정의됩니다. 함수가 JavaScript 프로그램의 최상위 레벨에 의해 호출되면 발신자는 NULL을 포함합니다.
다음 예제는 발신자 속성의 사용법을 보여줍니다.
코드 사본은 다음과 같습니다.
함수 callerdemo () {
if (arguments.caller) {
var a = callerdemo.caller.toString ();
경고 (a);
} 또 다른 {
Alert ( "이것은 최고 함수입니다");
}
}
함수 handleCaller () {
Callerdemo ();
}
HandleCaller ();
함수 calleedemo () {
경고 (Arguments.callee);
}
calleedemo ();
2. 칼리
실행중인 함수 객체, 즉 지정된 기능 객체의 본문을 반환합니다.
[기능.] arguments.callee
선택적 함수 매개 변수는 현재 실행중인 함수 객체의 이름입니다.
설명
Callee 속성의 초기 값은 실행되는 기능 객체입니다.
Callee 속성은 인수 객체의 구성원으로, 함수 객체 자체에 대한 참조를 나타내며, 이는 익명 함수의 재귀에 도움이되거나 함수의 캡슐화를 보장합니다. 예를 들어, 다음 예제에서 1에서 N까지의 자연 숫자의 합을 재귀 적으로 계산합니다. 이 속성은 관련 기능이 실행될 때만 사용할 수 있습니다. 또한 Callee는 길이 속성을 가지고 있으며, 이는 때때로 검증에 더 좋습니다. arguments.length는 실제 매개 변수의 길이이며 arguments.callee.length는 공식 매개 변수의 길이입니다. 이것은 공식 매개 변수의 길이가 호출 할 때 실제 매개 변수의 길이와 일치하는지 여부를 결정하는 데 사용될 수 있습니다.
예
코드 사본은 다음과 같습니다.
// Callee는 스스로 인쇄 할 수 있습니다
함수 calleedemo () {
경고 (Arguments.callee);
}
// 매개 변수를 확인하는 데 사용됩니다
함수 calleelengthdemo (arg1, arg2) {
if (arguments.length == arguments.callee.length) {
window.alert ( "공식 매개 변수와 실제 매개 변수가 정확한지 확인하십시오!");
반품;
} 또 다른 {
경고 ( "실제 인수 길이 :" +arguments.length);
경고 ( "크기 길이 :" +arguments.callee.length);
}
}
// 재귀 계산
var sum = function (n) {
if (n <= 0)
반환 1;
또 다른
return n + arguments.callee (n -1)
}
보다 일반적인 재귀 기능 :
코드 사본은 다음과 같습니다.
var sum = function (n) {
(1 == n) 반환 1;
그렇지 않으면 N + Sum (N-1)을 반환합니다.
호출 할 때 : Alert (sum (100));
함수에는 합계 자체에 대한 참조가 포함되어 있습니다. 함수 이름은 변수 이름입니다. 함수 내부의 합을 호출하는 것은 호출과 같습니다
글로벌 변수는 통화 자체에 잘 반영 될 수 없으며 Callee를 사용하는 것이 현재 더 나은 방법이 될 것입니다.