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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> </head> <body> <button>toggle1</button> <button>toggle2</button> <button>toggle3</button> <script> var isBool = true; function toggle0() { isBool = !isBool; console.log(isBool); // false / true } var count = 1; function toggle1() { count = count * -1; console.log(count); // -1 / 1 } var result = 0; function toggle2() { result = !result ? 1 : 0; console.log(result); // 1 / 0 } // 클로저는 자신의 범위(Scope) 밖에 있는 변수들에 접근할 수 있는 함수를 의미 for(var i=0; i<=2; i++) { (function(n) { // 익명함수를 통해 전달된 i값은 지역변수n에 할당된다. document.getElementsByTagName("button")[n].onclick = function() { // console.log(n); // eval("toggle" + n + "()"); // eval함수는 비추 var fn = window["toggle"+n]; fn(); }; })(i); // 익명함수에 i값을 넘기며 즉시 함수실행 } </script> </body> </html> |
반응형
'JavaScript' 카테고리의 다른 글
[JavaScript] setInterval - interval id 삭제 (0) | 2015.05.07 |
---|---|
[JavaScript] 자바스크립트 form 프로퍼티 제어 (0) | 2015.02.12 |
[JavaScript] Math.random() - 난수발생 (0) | 2015.02.11 |
[JavaScript] boolean - 변수 true false 판단 (0) | 2015.02.03 |
[JavaScript] var 전역변수, 객체리터럴, delete연산자 (0) | 2015.01.30 |