크로저_js
2021. 12. 18. 10:35ㆍksmart_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 |