JavaScript에서 클로저는 내부 함수가 외부 함수의 변수에 액세스할 수 있음을 의미합니다. 이는 외부 함수의 실행이 완료된 경우에도 적용됩니다.
JavaScript에서 일반 함수가 어떻게 작동하는지 간단히 살펴보겠습니다.
JavaScript 함수는 새 범위를 만듭니다. 해당 범위 내에 정의된 변수는 외부에서 액세스할 수 없습니다.
다음은 예제 함수입니다.
function hello() {
const word = "Hello";
console.log(word);
}
hello();
Hello
함수 외부에 액세스하려고 hello하면 작동하지 않습니다.
function hello() {
const word = "Hello";
}
console.log(word);
Uncaught ReferenceError: word is not defined
JavaScript의 클로저는 외부에 있는 함수의 변수에 접근하는 것을 가능하게 합니다. 함수를 실행할 때마다 후드 아래에 클로저가 생성됩니다.
클로저를 사용하면 내부 함수에서 외부 함수의 범위에 액세스할 수 있습니다.
예를 들어, 외부 함수에 내부 함수가 있는 이 스크립트의 동작을 조사해 보겠습니다.
outer()반환합니다 inner(). inner()즉, 함수를 변수에 저장할 수 있습니다 .const greet = outer()
greet()
Hello world
function inner() {
const b = "World";
console.log(a+b);
}
outer()함수를 다시 살펴보겠습니다 .
inner()함수는 라는 함수 내부에 있다는 것을 자동으로 인식 합니다 outer(). outer()따라서 나중에 사용하기 위해 함수에 속한 변수를 "저장"합니다 . 이것이 greet()여전히 값에 액세스할 수 있는 이유 a입니다.예를 들어 클릭 수를 추적하기 위해 순진한 카운터를 설정해 보겠습니다.
var counter = 0;
function increment() {
counter++;
}
신뢰할 수 있는 카운터를 구축하려면 increment()코드의 다른 부분이 counter변수를 엉망으로 만들 수 없도록 함수를 구성해야 합니다.
여기서 클로저가 유용합니다. 함수 내부에 함수를 만들어 카운터를 다시 구현해 보겠습니다.
이 코드 outer() inner()는 앞에서 본 기능 콤보와 같은 방식으로 작동합니다. JavaScript의 클로저 특성을 활용합니다.
createCounter()는 외부 기능입니다. counter변수를 설정하고 0내부 함수를 반환합니다 increment().increment()함수는 에 값을 추가하는 역할을 합니다 counter.increment()의 변수에 액세스할 수 있습니다 . 이것은 JavaScript의 클로저 특성 때문입니다.createCounter() createCounter()createCounter()카운터를 설정하기 위해 전화를 겁니다.let add = createCounter();
add();
add();
add();
1
2
3
읽어 주셔서 감사합니다. 도움이 되셨기를 바랍니다.
plainenglish.io 에서 더 많은 콘텐츠
facebook.com에 요청하면 컴퓨터가 도메인 이름을 조회하여 해당 도메인 이름을 IP 주소로 변환하므로 컴퓨터가 해당 연결을 만들 수 있습니다.
2022년에 저는 비기술적인 역할에서 사이버 보안으로 전환했습니다. 저는 독일어로 첫 학위를 받았습니다, 제가 어떻게 성공적으로 전환할 수 있었는지에 대해 여러분이 충격을 받고 궁금해하고 있다는 것을 알고 있습니다.
지난 주에 저는 PressGazette(영국 언론 뉴스 웹사이트)를 통해 발송된 보도 자료를 보았습니다. 이 기사는 Scandi 팟캐스트 호스팅 및 광고 회사인 Acast가 팟캐스팅에서 "아마도 가장 영향력 있는" 게시자 컨소시엄을 이끌 것이라고 발표했습니다.
어제 우리는 스웨덴 가수 Loreen이 트로피를 집으로 가져가서 ABBA가 대회에서 우승한 지 50년 만에 스웨덴의 왕관을 다시 가져가면서 두 번 우승한 최초의 여성이 되는 반짝반짝하고 혼란스러운 그랜드 피날레로 올해 유로비전 송 콘테스트의 문을 닫았습니다. "워털루"와 함께. 그들은 계속해서 팝 음악의 정경에서 가장 큰 행위 중 하나가 되었습니다.
모호함을 피하기 위해 다음 용어가 사용됩니다. 인증자; 로그인 웹사이트를 만드는 데 사용되는 휴대폰 사용자가 로그인 요청 서비스를 만들기 위해 사용하는 웹사이트 또는 애플리케이션 주어진 서비스를 제공하는 벤더 예.
오늘날의 상호 연결된 세계에서 사이버 공격의 위협은 그 어느 때보다 만연해 있습니다. 사이버 범죄자와 국가 행위자는 지속적으로 취약점을 악용하고 귀중한 데이터를 도용하여 모든 규모의 조직에 상당한 위험을 초래합니다.