>  기사  >  웹 프론트엔드  >  JavaScript 함수의 내부 속성에 대한 간략한 토론_기본 지식

JavaScript 함수의 내부 속성에 대한 간략한 토론_기본 지식

WBOY
WBOY원래의
2016-05-16 16:18:45897검색

함수 내부에는 두 가지 특수 속성(arguments 및 this)이 있습니다. 인수는 전달된 모든 매개변수를 포함하는 배열형 객체입니다.
하지만 이 객체에는 인수 객체를 소유한 함수에 대한 포인터인 callee라는 속성도 있습니다.

고전적인 계승 함수 예제를 살펴보세요:

코드 복사 코드는 다음과 같습니다.

        함수 계승(숫자) {
If (num <= 1) {
                    1을 반환합니다.
              } else {
num * Factorial(num - 1) 반환;
            }
}
함수 계승(숫자) {
If (num <= 1) {
1을 반환;
              } else {
num *args.callee(num - 1);
을 반환합니다.             }
}

첫 번째 방법을 사용해도 문제는 없으나 결합도가 너무 높아서 좋지 않습니다. 함수 이름을 변경한 후에는 내부 함수 이름도 변경해야 합니다
두 번째 방법은 함수 이름이 어떻게 바뀌더라도 함수 실행에 영향을 미치지 않는 낮은 결합입니다.

함수 데이터가 실행되는 환경 객체를 의미하거나, this 값이라고도 할 수 있습니다

코드 복사 코드는 다음과 같습니다.

          window.color = "빨간색";
      var o = {색상: "파란색"};
함수 sayColor() {
경고(this.color);
}
         sayColor();//red
o.sayColor = sayColor;
o.sayColor();//파란색

호출자 속성은 현재 함수를 호출하는 함수의 참조를 보유합니다. 현재 함수가 전역 범위에서 호출되면 해당 값은 Null입니다

코드 복사 코드는 다음과 같습니다.

함수 외부() {
내부();
}
         함수 inter(){
                   //alert(ininter.caller);//커플링이 너무 높습니다
경고(arguments.callee.caller);
}
        외부();

위 내용은 자바스크립트 함수의 내부 속성에 대한 내용입니다. 마음에 드셨으면 좋겠습니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.