IT/JS

클로저

프티 2021. 9. 7. 01:22
반응형

클로저는 세 가지 스코프 체인을 가진다.

 

  1. 클로저 자신에 대한 접근
    - 자신의 블록 내에 정의된 변수
  2. 외부 함수의 변수에 대한 접근
    - 클로저 자신이 선언된 블록을 의미한다.
  3. 전역 변수에 대한 접근

 

내부 함수는 외부 함수의 변수뿐만 아니라 매개 변수에도 접근할 수 있다.

 

다만 외부 함수의 arguments 객체에는 접근할 수 없는데,

모든 함수에는 arguments가 자동으로 선언이 되기 때문이다.

 

클로저 함수 또한 자신만의 arguments가 존재하기 때문에 외부 함수의 arguments를 다른 변수에 저장하지 않는 한,

클로저는 외부 함수의 arguments에 접근할 수 없다.

 

클로저는 외부 함수의 변수에 대한 참조를 저장한다.

이는 클로저가 실제 값에 접근하는 것이 아닌 값의 참조에 접근한다는 것을 의미한다.

 

만약 var로 선언된 값에 대한 참조를 저장한다면,

클로저는 변화된 var 값의 최종 값을 받아올 것이다.

 

이러한 특징으로 발생할 수 있는 부작용을 방지하기 위해서,

즉시 호출된 함수 표현식 (Immediately Invoked Function Expression; IIFE)을 사용할 수 있다.

 

내부 함수의 매개 변수에 내부 함수 호출시 받아온 var값을 할당하고,

함수를 반환하는 것이 아닌 함수를 즉시 실행한다.

 

 

 

 

출처

http://javascriptissexy.com/understand-javascript-closures-with-ease/

 

Understand JavaScript Closures With Ease

Closures allow JavaScript programmers to write better code. Creative, expressive, and concise. We frequently use closures in JavaScript, and, no matter your JavaScript experience, you will undoubtedly encounter them time...

javascriptissexy.com

http://chanlee.github.io/2013/12/10/understand-javascript-closure/

 

자바스크립트 클로저 쉽게 이해하기

클로저(Closure)는 프로그래머가 창조적이고 인상적이며 간결한 프로그래밍을 할 수 있게 해줍니다. 클로저는 빈번하게 사용되며 자바스크립트 스킬과 관계없이 자주 마주치게 될 것입니다. 물론

chanlee.github.io

 

반응형

'IT > JS' 카테고리의 다른 글

기본 매개변수 (Default Parameters)  (0) 2021.09.12
fetch API와 then 메서드  (0) 2021.09.09
Recursion  (0) 2021.08.30
콜백 함수  (0) 2021.08.30
프로토타입 이해한 내용 정리  (0) 2021.08.25