javascript 에는 블록 급 역할 영역 이 존재 하지 않 으 므 로 블록 급 역할 영역 에 사용 되 는 함수 성명 에 따 른 역할 영역 혼란 을 조심해 야 합 니 다.
4789 단어 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 성명 과 함수 표현 식 을 사용 하여 실현 하 는 것 입 니 다.
그리고 이런 서법 의 함 수 는 완전히 이식 할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.