크로저_js

2021. 12. 18. 10:35ksmart_html_css_js/JavaScript

728x90

- 함수 실행 시 주위 환경을 기억하고 있다.

<script type="text/javascript">
	function myFn(){
		var str='홍길동'; //지역변수
	}
	myFn(); //함수가 실행이 되더라도 지역변수는 호출이 불가능하다.
	console.log(str);
</script>
<script type="text/javascript">
	function myFn(){
		var str='홍길동'; //지역변수
		return function(){
			return str;
		}
	}console.log(myFn());
//리턴 받은 함수를 실행 시 그 함수의 환경을 기억하고 있다.
//실행되는 함수 기준의 전역변수 str의 값을 기억하고 있어 결과값 홍길동이 나온다.
	 console.log(myFn()());

for (var i = 0; i < 10; i++) {
			(function(n) {
				setTimeout(function() {
					console.log(n, 'setTimeout - for');
				}, 1000);
			})(i);
		}

=>풀어서

var myNumber=function(n){
			setTimeout(function() {
				console.log(n, 'setTimeout - for');
			}, 1000);
		}
		for (var i = 0; i < 10; i++) {
			myNumber(i);
		}

<button type="button" class="btn">버튼1</button>
	<button type="button" class="btn">버튼2</button>
	<button type="button" class="btn">버튼3</button>
	
	<script type="text/javascript">
		var btnArray=document.querySelectorAll('.btn');
		console.log(btnArray);
		for(var i=0;i<btnArray.length;i++){
			(function(n){
			btnArray[n].addEventListener('click',function(){
				console.log(n);
			});				
			})(i)
		}
		//document.addEventListener
	</script>

 

728x90

'ksmart_html_css_js > JavaScript' 카테고리의 다른 글

날짜관련 메서드_js  (0) 2021.12.24
객체_js  (0) 2021.12.18
함수 - 내부함수, 재귀호출_js  (0) 2021.12.18
콜백함수_js  (0) 2021.12.18
함수_js  (0) 2021.12.18