자바스크립트
스코프체인 과 클로저 이해하기
선한열심
2013. 2. 8. 15:16
자바스크립트 개념 없이 10년 동안 개발 햇다 -.- 기본에 충실하자
// 함수안의 변수는 함수안에 선언이 있는지 먼저 확인한다 그래서 함수 i는 var i ,alert(i), i=3 ;
var i=0;
function T1(){
alert(i); // undefined
var i=3;
alert(i); // 3
}
T1();
function outer()
{
var x=0;
return ++x;
}
var f = outer();
alert(f); // f()하면 오류 발생
var f = outer;
alert(f()); // f() 가능
// 클로저 : 내부 함수를 반환값으로 사용하는 특수한 함수
function outer1()
{
var x=0;
return function(){ return++x; }; // 함수 호출 (클로저)
}
var f1 = outer1();
f1(); // 1
f1(); // 2
alert(f1()); // 3