728x90
반응형
유효범위(scope)
어떤 변수들에 접근할 수 있는지를 정의한다.
종류
- 전역 스코프 (global scope)
변수가 함수 바깥이나 중괄호 바깥에 선언되었다면, 전역 스코프에 정의된다.
전역 변수로 선언하면, 모든 곳에서 해당 변수를 사용할 수 있다.
- 지역 스코프 (local scope)
특정부분에서만 사용할 수 있는 변수는 지역 스코프에 있다.
지역 변수라고 부른다.
클로저(closures)
내부함수가 외부함수의 맥락(context)에 접근할 수 있는 것을 가르킨다.
function outter(){
var title = 'yes';
function inner(){
alert(title);
}
inner();
}
outter();
outter라는 외부함수 안에 inner라는 내부함수가 정의 되어 있다.
내부함수는 외부함수의 지역변수에 접근할 수 있다.
function outter(){
var title = 'yes';
return function(){
alert(title);
}
var inner = outter();
inner();
inner에는 이름 없는 함수가 담겨있다.
outter 함수는 실행이 끝났기 때문에 소멸되는 것이 자연스럽다.
하지만 inner함수를 실행했을 때 클로저로 인해 내부함수가 외부함수의 지역변수에 접근 할 수 있고,
외부함수는 외부함수의 지역변수를 사용하는 내부함수가 소멸될 때까지 소멸되지 않는 특성을 의미한다.
728x90
반응형
'Internship' 카테고리의 다른 글
this (0) | 2019.05.04 |
---|---|
var vs let (0) | 2019.05.04 |
프로미스 (0) | 2019.05.04 |
디자인 패턴 (0) | 2019.05.04 |
싱글턴 패턴(Singleton Pattern) (0) | 2019.04.24 |