티스토리 뷰
Javascript -클로저
> 클로저
-클로저는 내부함수가 외부함수의 맥락에 접근할 수 있는 것을 가르킵니다. 클로저는 자바스크립트를 이용한 고난도의 테크닉을 구사하는데 필수적인 개념으로 활용된다.
-클로저는 내부함수와 밀접한 관계를 가지고 있는 주제다. 내부함수는 외부함수의 지역변수에 접근할 수 있는데 외부함수의 실행이 끝나서 외부함수가 소멸된 이후에도 내부함수가 외부함수의 변수에 접근 할 수 있다. 이러한 메커니즘을 클로저라고한다.
> 내부함수
function outer(){
function inner(){
var title = 'coding everybody';
alert(title);
}
inner();
}
outer();
위의 예제에서 함수 outer의 내부에는 함수 inner가 정의되어있다. 함수 inner를 내부
함수라고 한다. 내부함수는 외부함수의 지역변수에 접근할수 있다.
function outer(){
var title = 'coding everybody';
function inner({
alert(title);
})
inner();
}
outer();
function outter(){
var title = 'coding everybody';
return function(){
alert(title);
}
}
inner = outer();
inner();
외부함수는 이미 종료되었는데도, 내부함수에서 이미사라진 외부함수의 변수에 접근이 가능하다.
이것이 클로저의 중요한 특징이다!!
근데 어디에쓰나요?
> private variable
function factory_movie(title){
return {
get_title : function (){
return title;
},
set_title : function(_title){
title = _title
}
}
}
ghost = factory_movie('Ghost in the shell');
matrix = factory_movie('Matrix');
alert(ghost.get_title());
alert(matrix.get_title());
ghost.set_title('공각기동대');
alert(ghost.get_title());
alert(matrix.get_title());
'Computer Engineering > Javascript' 카테고리의 다른 글
Javascript - 속깊은 자바스크립트[2. 자바스크립트의 스코프와 클로저 -스코프 ] (1) | 2018.04.23 |
---|---|
javascript- 속깊은 Javascript [1. 웹과 자바스크립트] (0) | 2018.04.21 |
Javascript - 전역객체와 this (0) | 2018.04.08 |
Javascript - 타입과 값 (0) | 2018.03.23 |
Javascript -자바스크립트 기초 (수연산, 값으로서의 함수, 비동기 콜백과 ajax) (0) | 2018.03.18 |
댓글