심오 하고 얕 은 js 폐쇄 지식 정리 (1)

1489 단어
간단 한 인식 폐쇄
    선언: 대부분의 프로 그래 밍 언어 와 마찬가지 로 js 도 어법 작용 역, 즉 함수 의 집행 은 변수 작용 역 에 의존한다. 이 작용 역 은 함수 가 정 의 될 때 결정 되 는 것 이지 함수 가 호출 될 때 결정 되 는 것 이 아니다.함수 대상 은 역할 도 메 인 체인 을 통 해 연결 할 수 있 습 니 다. 함수 체 내부 의 변 수 는 모두 함수 역할 도 메 인 에서 유지 할 수 있 습 니 다. 이런 특성 은 컴퓨터 문헌 에서 (= 함 의 는 함수 변수 가 역할 도 메 인 체인 에 숨 길 수 있 기 때문에 함수 가 변 수 를 감 싸 는 것 처럼 보 입 니 다 =).
우선 코드 를 살 펴 보 겠 습 니 다.
var scope = 'global scope'  //    
function checkScope(){
    var scope = 'local scope';//    
    function f(){  //    
        console.log(scope);
    };
    return f()  //  f    
};
checkScope(); //     local scope;

이 코드 는 쉽게 알 아 볼 수 있 습 니 다. checkScope 를 호출 할 때 이 함수 내부 에서 f 의 운행 결 과 를 되 돌려 줍 니 다.다음 에 우 리 는 위의 코드 를 약간 개조 합 니 다.
var scope = 'global scope'  //    
function checkScope(){
    var scope = 'local scope';//    
    function f(){  //    
        console.log(scope);
    };
    return f  //  f    
};
checkScope()(); //     local scope;

* 8195: 8195: 현재 checkScope 를 호출 할 때 돌아 오 는 것 은 하나의 함수 대상 일 뿐 입 니 다. 이때 checkScope 외부 에서 이 함수 대상 을 호출 하면 그의 반환 결 과 는 global scope 가 아 닌 local scope 입 니 다.『 8195 』 원리: js 의 집행 은 역할 도 메 인 체인 을 사 용 했 는데 이 역할 도 메 인 체인 은 함수 정의 에서 만 든 것 이다.내장 함수 f 는 이 역할 도 메 인 체인 에 정의 되 어 있 습 니 다. 그 중의 scope 는 부분 변수 일 것 입 니 다. 언제든지 f 를 실행 하 더 라 도 이러한 바 인 딩 은 f 를 실행 할 때 유효 합 니 다.(패키지 의 이러한 특성 은 놀 랄 정도 로 강하 다. 국부 변수 (인자 와) 를 포착 하고 계속 저장 할 수 있다.
QQ 그룹 가입, 더 많은 동료 들 과 함께 행복 하 세 요!!!

좋은 웹페이지 즐겨찾기