javascript 에는 블록 급 역할 영역 이 존재 하지 않 으 므 로 블록 급 역할 영역 에 사용 되 는 함수 성명 에 따 른 역할 영역 혼란 을 조심해 야 합 니 다.

4789 단어 JavaScript
javascript 에서 함수 의 역할 영역 은 매우 중요 한 개념 입 니 다. javascript 에 서 는 블록 급 역할 영역 이 없 지만 함수 역할 영역 이라는 개념 이 있 습 니 다.
우 리 는 개발 과정 에서 이런 문제 에 자주 부 딪 히 는데,
어떤 함 수 는 잠시 필요 하지 않 습 니 다. 설명 하고 싶 지 않 습 니 다. 특정한 상황 에서 만 이 함수 가 필요 합 니 다. 이 함수 체 를 우리 엔진 에 탑재 할 수 있 습 니 다.
 1  function foo(){

 2             return "   ";

 3           }

 4        function test(x){

 5         var result=[];

 6            if(x){

 7             function foo(){return "   ";}

 8                result.push(foo());

 9            }

10            result.push(foo());

11            return result;

12        }          

13           alert(test(true));//   ,   

14           alert(test(false));//  :     //IE   :   .              ,               .
/*
, .
if " ".
if , " "
*/

위의 인 스 턴 스 에는 전역 적 인 방법 foo () 가 있 습 니 다.test 방법 체 에서 매개 변수 x 가 진실 일 때 부분 함수, foo () 를 설명 합 니 다.그렇지 않 으 면 부분 함수 foo () 를 설명 하지 않 습 니 다.많은 사람들 이 처음에 얻 은 결론 은 [국부 적, 전역 적], [전역 적] 사실 결 과 는 이러한 [국부 적, 국부 적], [전역 적] 이 위의 잘못된 결론 을 얻 을 수 있 는 이 유 는 우리 가 if 문 구 를 효과 적 인 역할 영역 으로 생각 하기 때 문 일 것 이다. if 문장의 구성원 들 이 외부 에 접근 하지 않 을 것 이 라 고 생각한다. 위의 코드 를 수정 하면...이해 하기 쉽 군.
/*
주: 오늘 본의 아니 게 이상 의 함수 성명 에 어느 정도 호환성 이 있 음 을 발 견 했 습 니 다. 이렇게 사용 하 는 것 을 권장 하지 않 습 니 다 ^ ^
*/
 
 
 1 function foo(){return "   ";}

 2           function test(x){

 3           var fun=foo,result=[];

 4               if(x){

 5               g=function(){return "   ";}

 6               result.push(fun());

 7               }

 8               result.push(fun());

 9               return result;

10           }

11           alert(test(true));//   ,   

12           alert(test(false));//   

함수 설명 을 작성 하려 면 부모 요소 의 맨 바깥쪽 에 두 어야 합 니 다.
만약 조건 부 선택 함수 가 필요 하 다 면, 가장 좋 은 방법 은 var 성명 과 함수 표현 식 을 사용 하여 실현 하 는 것 입 니 다.
그리고 이런 서법 의 함 수 는 완전히 이식 할 수 있다.

좋은 웹페이지 즐겨찾기