일반 함수
: 가장 일반적으로 사용한 함수
ex) function funcName() { ~ }
중첩 함수
: 함수 안에 함수가 있는 경우 '중첩되었다'고 하며, 함수 안에 있는 함수를 중첩 함수라고 한다.
: 일반적으로 중첩함수는 이름이 없는 이벤트 리스너로 많이 활용된다.
ex) 
리터럴 함수
: 식별자 없이 함수 그 자체를 객체 타입의 '값(리터럴)'으로 생성한 함수.
ex) var add = function() { ~ } or var add = () => { ~ }

콜백 함수
: 함수 실행결과 값을 리턴이 아닌 매개변수로 넘어온 함수를 호출해서 넘겨주는 방식을 '콜백'이라고 하며, 이때 매개변수로 넘어온 함수를 콜백함수라 한다.
: 즉, 어떤 함수의 인자로 함수가 전달된 함수이다.
: 주로 로직의 구현부와 처리부를 분리해야 할 경우에 적합하다.
ex) 
클로저 함수 (closure function)
: 자바스크립트의 함수가 자신이 선언된 렉시컬 환경(lexical environment)을 기억하여 그 환경 밖에서 호출되더라도 해당 환경에 접근할 수 있는 것을 말한다.
ex) 
ex) 
참조한 글
- 콜백함수와 익명함수
https://velog.io/@exceed96/JavaScript-%EC%BD%9C%EB%B0%B1%ED%95%A8%EC%88%98%EC%99%80-%EC%9D%B5%EB%AA%85%ED%95%A8%EC%88%98- [JS] Closure(클로저)의 개념, 특징, 장점, 예시
https://velog.io/@jiyaho/JS-Closure%ED%81%B4%EB%A1%9C%EC%A0%80%EC%9D%98-%EA%B0%9C%EB%85%90-%ED%8A%B9%EC%A7%95-%EC%9E%A5%EC%A0%90-%EC%98%88%EC%8B%9C