1. 간단한 예
페이지에 여러 개의 div가 있으므로 onclick 메소드를 바인딩하려고 하므로 다음 코드가 있습니다.
function externalFn () {
functioninnerFn ( ) {}}
document.write("내부 함수
");
JavaScript를 사용하면 개발자는 모든 유형의 데이터와 같은 함수를 전달할 수 있습니다. 즉, JavaScript의 내부 함수는 이를 정의하는 외부 함수를 이스케이프할 수 있습니다.
이스케이프하는 방법은 다양합니다. 예를 들어 전역 변수에 내부 함수를 할당할 수 있습니다.
내부 함수는 내부 함수의 범위로 제한되는 자체 변수를 가질 수도 있습니다.
코드 복사
내부 기능이 여러 개인 경우 예상치 못한 종료가 발생할 가능성이 높습니다. 우리는 증가 함수를 정의합니다. 이 함수의 증가는 2입니다.
코드 복사
function innerFn2() {
externalVar = 2;
document.write("내부 함수 2t");
document.write("outerVar = " externalVar "
") ;
}
return { "fn1": innerFn1, "fn2": innerFn2 };
}
var fnRef = externalFn();
fnRef. fn1();
fnRef .fn2();
fnRef.fn1();
var fnRef2 = externalFn();
fnRef2.fn1();
fnRef2.fn2(); f nRef2.fn1() ;
4.解惑
저희는 4了에게 경고합니다.이 글을 읽고 나면 누구나 저처럼 클로저에 대해 어느 정도 이해하고 있을 것입니다. 물론 완전히 이해했다면 함수의 실행 환경과 스코프 체인을 이해해야 합니다 ^_^