내부 함수(함수 안의 함수)가 내부 함수를 둘러싼 외부 함수의 변수나 매개변수를 이용했는데
이 외부 함수가 종료되어도 내부 함수에서 사용한 변수 값은 내부 함수 내에서 계속 유지되는
기능을 클로저라고 부른다.
<div id="main">hello</div> obj.style.border = "1px solid red"; setTimeout(function(){ function delayedAlert(msg, time){ delayedAlert("Welcome", 2000); |
프로자바스크립트 책에서 나온 내용인데 setTimeout을 setTimeout 1초후 안보이게 하는데 obj를 쓸수 있다는 이야기?.. 두번째도 2초후 alert 메세지 인데 msg를 쓸수 있다는 것??? 원래 되는거 아닌가? 궁금하다.
커링은 좀 신선했다.
<script> alert(addFive(4) == 9); |
함수를 만드는 건데 위에 함수를 선언하고 addFive를 5를 더하는 함수를 만드는 함수로 만든 것이다. 그래서 addFive(4)를 하면 9가 된다. 궁금한 것은 toAdd가 뭘까? 하는 건이다. 그냥 저렿게 선언해도 되는 것인지..
쩝 아 모르겠다 쌍~ alert(toAdd); 찍어보니 4가 나왔다 함수로 들어올 함수 변수 정도? 어렵지만 함수를 만들때
좋을 것 같다.
http://jibbering.com/faq/faq_notes/closures.htm 클로저에 대한 자세한 내용참조 (영어 울렁증이..)