JavaScript의 클립 소개
3859 단어 programmingjavascript
머리말:
이 문서에서 저는 가능한 한 자바스크립트의 클립에 대한 기초 지식을 간단하게 소개할 것입니다.
선결 조건:
JavaScript의 문법 범위에 대해 어느 정도 알고 있고, 어떤 이유로 폐쇄의 개념을 파악하지 못했다면, 본고는 당신을 위해 준비한 것입니다.
왜 당신은 마무리를 이해해야 합니까?
본문 말미에서 당신은 다음과 같이 해야 한다.
뭐가 끝이야?
클립은 함수가 문법 범위 밖에서 실행되더라도 함수가 그 문법 범위를 기억하고 접근할 수 있도록 하는 것을 말한다.어법 범위는 함수를 정의하는 범위를 가리킨다.
그림:
function hour(){
var hr = 2;
function min(){
console.log(hr);
}
return min;
}
var time = hour();
time(); //output: 2
위의 코드 세션을 훑어봅시다.hour
를 정의한다.이 함수는 모든 내용을 외부 세계에서 봉인하거나 숨기는 범위를 만듭니다.hour
에서 우리는 변수hr
를 성명하고 그 값을 2로 부여한다.hour
에서 우리는 또 다른 함수min
를 정의했다. 이것은 hour
의 범위 내에서 자신의 범위를 만든다.min
는 정의에서 변수hr
를 인용하였음을 주의하십시오.hour
안에 우리는 돌아간다min
. hour
의 범위 밖으로 이동하고hour
실행(또는 호출).이 호출 결과 (min
는 새로운 변수 time
에 분배되었다.time
하면 우리가 되돌아오는 함수min
를 당연히 실행합니다.그래서 min
우리가 성명한 범위 밖에서 집행한다.2
의 출력을 얻었는데 이것은 hr
의 값이다.이것은 사람을 매우 놀라게 한다.우리는 함수
hour
(그리고 그 중의 모든 내용, 포함hr
)가 함수return
문장에서 퇴출된 후 즉시 쓰레기로 수집되기를 희망합니다.그렇다면 왜 min
는 변수hr
와 hour
함수의 전체 범위에 접근할 수 있습니까?이것은 업무의 종결이다.패키지를 닫으면
min
에서 정의된 범위에 계속 접근할 수 있습니다. 우리의 예는 hour
입니다.프로그램 내의 언제든지 hour
접근할 수 있도록 클라이언트 min
의 역할 영역을 활성 상태로 유지한다고 할 수 있습니다.유명한 기능
setTimeout
:유명한
setTimeout
함수를 사용하는 것은 우리가 일상 코드에서 패키지를 닫는 많은 방법 중의 하나이다.function delay(){
var response = "Ok";
setTimeout(function timeCount(){
console.log(response);
}, 2000);
}
delay();
delay
를 정의함으로써 문법 범위를 만든다.delay
에서 변수response
를 설명하고 문자열"Ok"
을 부여합니다.timeCount
라는 함수를 만들고 이를 첫 번째 매개 변수로 setTimeout
, 두 번째 매개 변수로 2000
에 전달한다.delay
하겠습니다.timeCount
delay
의 범위 내에 클로즈업이 하나 있다.따라서 timeCount
가 setTimeout
2000밀리초 이내에 실행되었을 때 delay
의 역할역이 사라져도 delay
의 역할역에 접근할 수 있다.이것은 또 일의 종결이다.결론:
마지막 몇 분(또는 몇 초, Lol)에서 우리는 클로즈업의 기본 개념을 배웠고 클로즈업이 코드와
setTimeout
함수에서의 용법을 이해했다.다음 글에서 우리는 폐쇄가 어떻게 순환과 함께 작동하는지, 그리고 모듈 모델의 기초를 어떻게 구성하는지 깊이 있게 연구할 것이다.PLSRD(Persistent Reference Data)의 개념도 소개합니다.
다음까지✌
Reference
이 문제에 관하여(JavaScript의 클립 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/barnabas19/an-intro-to-closure-in-javascript-397l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)