
익명 함수란 이름이 없는 함수를 의미함. 주로 일회성 작업이나 간단한 처리를 위해 사용되며, 변수에 할당하거나 다른 함수의 인자로 전달되어 사용되는 경우가 많음.
const add = function(a: number, b: number) {
return a + b;
};
이 경우 function(a, b)는 이름이 없는 익명 함수이고, add라는 변수에 할당되어 사용됨.
const multiply = (a: number, b: number) => a * b;
화살표 함수 역시 함수 자체에 이름이 없기 때문에 익명 함수에 해당함.
기명 함수는 함수 자체에 이름이 명시되어 있음.
function subtract(a: number, b: number) {
return a - b;
}
이 경우 함수의 이름이 subtract로 명확히 정의되어 있어 디버깅이나 재귀 호출 등에서 유리함.
| 항목 | 내용 |
|---|---|
| 함수 이름 | 없음 |
| 디버깅 | 스택 트레이스에 이름이 없으면 추적이 어려울 수 있음 |
| 재사용성 | 낮음 (보통 한 번만 사용되는 경우) |
| 콜백 사용 | 이벤트 핸들러, map, filter 등의 콜백 함수로 자주 사용됨 |
| 자기 자신 호출 | 내부에서 자기 자신을 호출할 수 없음 (재귀 불가) |
예:
[1, 2, 3].map(function(n) { return n * 2; });
혹은
button.addEventListener('click', () => console.log('클릭됨'));
function factorial(n: number): number {
if (n <= 1) return 1;
return n * factorial(n - 1);
}
익명 함수는 간단한 로직에 적합하며, 코드가 짧을수록 간결함을 줄 수 있음. 반면 기명 함수는 가독성, 재사용성, 디버깅 측면에서 유리함. 상황에 따라 적절히 사용하는 것이 중요함.
Bad function
악명 함수
힙하하~