기능에는 인수와 이것에 대한 두 가지 특수 속성이 있습니다. 인수는 전달 된 모든 매개 변수를 포함하는 클래스의 배열 객체입니다.
그러나이 객체에는 Callee라는 속성도 있습니다. 이것은 인수 객체를 소유 한 함수에 대한 포인터입니다.
고전적인 요인 기능 예 : 참조 :
코드 사본은 다음과 같습니다.
기능 계승 (Num) {
if (num <= 1) {
반환 1;
} 또 다른 {
Num * Factorial (Num -1)을 반환합니다.
}
}
기능 계승 (Num) {
if (num <= 1) {
반환 1;
} 또 다른 {
Num * arguments.callee (num -1);
}
}
첫 번째 방법을 사용하는 데 아무런 문제가 없지만 커플 링은 너무 높고 좋지 않습니다. 함수 이름이 변경되면 내부 함수 이름도 변경해야합니다.
두 번째 방법은 커플 링이 낮습니다. 함수 이름이 어떻게 변경 되더라도 함수 실행에 영향을 미치지 않습니다.
이것은 함수가 실행되는 환경 객체를 말 하거나이 값이라고도 할 수 있습니다.
코드 사본은 다음과 같습니다.
window.color = "빨간색";
var o = {색상 : "파란색"};
함수 sayscolor () {
경고 (this.color);
}
saycolor (); // 빨간색
O.SayColor = SayColor;
O.SayColor (); // 파란색
발신자 속성은 현재 함수를 호출하는 함수에 대한 참조를 보유합니다. 현재 함수가 글로벌 범위에서 호출되면 그 값은 null입니다.
코드 사본은 다음과 같습니다.
함수 외부 () {
Innter ();
}
함수 내부 () {
//alert(innter.caller) ;// 커플 링이 너무 높습니다
Alert (arguments.callee.caller);
}
밖의();
위는 JavaScript 함수의 내부 속성의 모든 내용입니다. 나는 당신이 그것을 좋아할 수 있기를 바랍니다