: 익명 함수의 대표적인 용도
: 개발자는 함수를 등록하고, 어떤 이벤트가 발생했거나 특정 시점에 도달했을 때 시스템에서 호출되는 함수를 뜻합니다. (코드를 통해 명시적으로 호출하는 함수가 아님)
: 또한, 특정 함수의 인자로 넘겨서 코드 내부에서 호출되는 함수 또한 콜백 함수가 될 수 있습니다.
: 예) 이벤트 발생 시 호출하는 함수
: 함수를 정의하는 동시에 바로 실행하는 함수
1. 즉시 실행 함수는 같은 함수를 다시 호출할 수 없다.
2. 최초 한 번의 실행만을 필요로 하는 초기화 코드 부분에 사용할 수 있다.
3. jQuery와 같은 자바스크립트 라이브러리나 프레임워크 소스들에서 사용된다. (자바스크립트의 변수 유효 범위 특성 때문)
(function (name) {
console.log(‘This is the immediate function —> ‘ + name’);
})(‘foo’);
// 출력값
This is the immediate function —> foo
// parent() 함수 정의
function parent() {
var a = 100;
var b = 200;
// child() 내부 함수 정의
function child() {
var b = 300;
}
console.log(a);
console.log(b);
child();
}
parent(); // (출력값) 100 300
child(); // (출력값) Uncaught ReferenceError: child is not defined
function parent() {
var a = 100;
// child() 내부 함수
var child = function() {
console.log(a);
}
// child() 함수 변환
return child;
}
var inner = parent();
inner(); // -> 클로저
// (출력값)
100
< 함수를 리턴하면 좋은 점 >
var self = function () {
console.log(‘a’);
return function() {
console.log(‘b’);
}
}
self = self(); // a
self(); // b