setTimeout() 콜백함수에 매개변수 전달하기

JavaScript 2022. 3. 30. 16:31

setTimeout(), setInterval() 함수에서 콜백함수에 매개변수를 전달하는 가장 간단한 방법은 let i = 0; setTimeout(function(j) { console.log(j); }, 1000, i); setTimeout( callback, timeout, arg1, arg2, ... ) 형태로 함수를 작성하는 것이 있음. let i = 0; setTimeout(function(i) { // argument로 i를 지정했으므로 함수 내부에서 i는 지역변수 console.log(i); // 지역변수 i를 참조 }, 1000); 변수 i는 전역변수이기 때문에 arg1, arg2, ...를 입력하지 않고, 콜백함수의 매개변수로 전역변수 i를 지정하면 정상적으로 작동할 것 같음... 하지..

Closure와 즉시실행함수(IIFE)

JavaScript 2022. 3. 12. 15:45

1. 클로저(Closure) 선언된 당시의 환경(lexical environment)을 기억하여 그 환경 밖에서 호출되어도 그 환경에 접근할 수 있는 함수들의 조합. 즉, 1. 어떠한 함수에 내부 함수가 존재하면서, (외부함수에 의해 return된 함수일 필요는 없음) 2. 그 내부함수가 호출된 위치가 아닌, 자신이 선언된 위치에서의 scope를 참조하는 함수가 존재 (자신의 scope + 외부함수의 scope를 가짐) 2022.03.09 - [Javascript] - 변수의 선언(const, let, var)과 Scope // 1. 클로저의 예시 function outer1() { let x = 1; return function (y) { return y + x }; } // 2. 클로저가 아님! fu..