일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 자료구조
- jest
- 개발자
- 비동기
- 계명대 이종호
- 자바스크립트 자료구조
- 호키스
- react
- Hitit
- TDD
- 리액트
- SWIFT
- hokeys
- queue
- hokidoki
- 자바스크립트
- 스위프트
- 호키도키
- javascript
- HTML
- 자스민
- 힛잇
- IOS
- 스벨트
- data structure
- 이종호
- 계명대
- 개발
- Svelte
- 리액트 예제
Archives
- Today
- Total
Dog foot print
[javascript] 클로저 본문
클로저는 외부함수의 변수를 내부함수로 접근 하여 사용 하는 것입니다.
사실 객체의 캡슐화와 별 다른 것은 없습니다. 클래스의 멤버변수를 함수로 접근 하듯 클로저 또한 함수내부에 있는 함수로 접근 하는 것입니다.
스코프
자바스크립트 스코프는 2개의 스포크가 있습니다. 바로 함수스코프와 블록스코프입니다.
함수 스코프 : 함수 내부에서 만들어진 변수는 함수외부에서 접근 할 수 없고 함수 외부에서 const 와 let으로 작성되었다고 해도 함수 내부에서 새롭게 정의가 가능하고 이 변수들은 함수 내부에서만 작동이 가능하게 된다.
블록스코프 : {} 내부에서 만들어진 변수는 이 블록 내부에서만 유효하고 블록을 제외한 다른 곳에서는 접근이 불가능 하다.
클로저 사용하기
function good(){
let hello = "say hello";
function say (){
console.log(hello);
}
return say();
}
good()
내부함수인 say가 외부 함수 내부에 있는 hello 변수를 참조한다.
function human(name){
let sex = "man";
return {
sex : function(){
return console.log(sex);
},
age : 1,
name : name
}
}
man("lee").sex();
객체로 반환되며 메서드로써 외부 변수를 참조 할 수 있다.
반응형
'Javascript' 카테고리의 다른 글
[javascript] Stack 구현하기 (0) | 2019.07.07 |
---|---|
[javascript] Date객체의 사용 (0) | 2019.07.06 |
[javascript] Document 객체 (0) | 2019.07.04 |
[javascript] 동기와 비동기 (0) | 2019.07.02 |
[javascript] 콜백 함수란 ? (0) | 2019.07.02 |
Comments