Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 해석
- unity
- android
- 자바
- 개발자
- techEmpower
- ubuntu
- kakao
- C
- 프래그먼트
- error
- caddy
- 번역
- 안드로이드
- it
- server
- NGINX
- 컴퓨터과학총론
- C lanuage
- 개발
- mariadb
- java
- centOS7
- javascript
- 구글
- H2O
- Portfolio
- MySQL
- 한글
- php
Archives
- Today
- Total
개발모음집
javascript closure (클로저) 본문
사전적 의미
폐쇄, 닫힘, 마감, 종결
고유 명사로서 의미
클로저는 함수와 함수가 선언된 어휘적 환경의 조합이다.
출처 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Closures
클로저는 반환된 내부함수가 자신이 선언됐을 때의 환경(Lexical environment)인 스코프를 기억하여 자신이 선언됐을 때의 환경(스코프) 밖에서 호출되어도 그 환경(스코프)에 접근할 수 있는 함수를 말한다. 이를 조금 더 간단히 말하면 클로저는 자신이 생성될 때의 환경(Lexical environment)을 기억하는 함수다
출처 : https://poiemaweb.com/js-closure
클로저는 내부 함수가 정의될 때 외부 함수의 환경을 기억하고 있는 내부 함수를 말합니다.
클로저란 외부함수의 실행이 모두 끝났음에도 불구하고 내부함수가 외부함수의 지역변수에 접근할 수 있는 것을 말함
출처 : 블로그
function outer(){
var name = "void"
return function(){
console.log(name)
}
}
var inner = outer() //함수 실행으로 인해 반환되는 값이 inner 라는 변수에 저장됨
inner() // outer는 return 키워드를 통해 종료가 되었음에도 불구하고 inner() 를 호출하면 void 라고 로그 찍힘
왜 쓰는가? 왜 있는가?
- 정보은닉과 캡슐화 (자바의 private 접근제어자를 흉내냄)
- 데이터 보존 및 활용
- 지역변수 보호
왜 알아야하는가?
js 엔진이 이렇게 동작하니까.. 이해하면서 js 코딩을 하려면 알아야 한다..
어떻게 쓰는가?
상태유지 (현재 상태를 기억하고 변경된 최신 상태를 유지)
전역 변수의 사용억제
'client' 카테고리의 다른 글
javascript foreach, map, reduce (0) | 2020.07.01 |
---|---|
javascript prototype (프로토타입) (0) | 2020.06.30 |
javascript execution context (실행 콘텍스트) (0) | 2020.06.28 |
console.log 변수로 사용하기 (0) | 2020.06.19 |
js call, apply, bind (0) | 2020.06.16 |