[JavaScript] 함수 - 3

콜백 함수

어떤 이벤트가 발생하거나 특정 시점이 되었을 때 시스템에서 호출되는 함수
이벤트가 발생되면 이벤트 핸들러가 등록된 콜백 함수를 호출한다

즉시 실행 함수

함수가 선언되자 마자 바로 실행되게 할 수 있는 함수
다시 호출할 수 없다
함수를 ()로 감싸고 그 뒤에 바로 실행가능하게 ()를 추가하고 그 안에 인자를 넣어준다
즉시 실행 함수 내부에 정의된 매개변수와 변수들은 함수 코드 내부에서만 유효하다

1
2
3
(function (name) {
console.log('This is the immediate function --> ' + name);
})('foo');


내부 함수

함수 내부에 정의된 함수
클로저를 생성하거나 부모 함수 코드에서 외부의 접근을 막을때 사용한다

1
2
3
4
5
6
7
8
9
10
11
12
function parent() {
var a = 100;
var b = 200;
function child() {
var b = 300;
console.log(a); //100
console.log(b); //300
}
child();
}
parent();
child(); //Error!!

하지만 부모 함수 내에서 내부 함수를 리턴할 경우 외부에서 호출이 가능하다
외부에서 호출하는 내부 함수에 정의되지 않은 변수가 있다면 스코프 체이닝으로 부모함수에 해당 변수가 정의되어 있는지 확인하고 있다면 해당 값을 가지게 된다

함수를 리턴하는 함수

1
2
3
4
5
6
7
8
9
10
11
var self = function () {
console.log('a');
return function () {
console.log('b');
}
}
//a 를 실행하고 함수를 리턴한다
self = self(); //a
//리턴 받은 함수로 자신을 재정의한다
self(); //b

Author: Song Hayoung
Link: https://songhayoung.github.io/2020/07/12/Languages/JS/function3/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.