모던 웹을 위한 Javascript jQuery 책을 보면서 정리하는 내용이다.
setTimeout은 for문이 실행된 뒤에 실행된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>함수</title> <script> /* setTime을 실행하는 시점이 for문이 끝난 뒤이기 때문에 3이 3번 반복된다. */ for (var i = 0; i < 3; i++) { setTimeout(function(){ alert(i); }, 0); } </script> </head> <body> </body> </html> | cs |
for문이 돌고 setTimeout을 실행하여 alert 3이 3번 반복된다.
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 | <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>함수</title> <script> /* setTime을 실행하는 시점이 for문이 끝난 뒤이기 때문에 3이 3번 반복된다. 이를 방지하기 위해 클로저를 사용 */ for (var i = 0; i < 3; i++) { (function (closed_i) { setTimeout(function(){ alert(closed_i); }, 0); })(i); } </script> </head> <body> </body> </html> | cs |
위와 같이 작성하면 반복문을 도는 동안 클로저가 생성되어 변수 closed_i에 값을 저장할 수 있다.
퇴사 관련 이야기들을 모아 책으로 출판했습니다. 아래 링크에서 전체 목차를 읽어보세요! 대기업 퇴사 이야기 전체보기 : http://www.bookk.co.kr/book/view/21659 아래 링크로 간단한 후기 링크를 남기면 배송비도 환급된다고 하니 참고해주세요. http://www.bookk.co.kr/community/postscript
'문돌이의 IT > JavaScript' 카테고리의 다른 글
자바스크립트 in / with 키워드 (0) | 2017.10.08 |
---|---|
자바스크립트 객체 javascript object (0) | 2017.10.06 |
자바스크립트 함수(2) 콜백함수 클로저 (0) | 2017.10.04 |
자바스크립트 함수 (0) | 2017.10.03 |
자바스크립트 기본문법 (0) | 2017.10.02 |