> 만두 빚는 법을 적어두었다고 만두가 생기지는 않는다. 함수는 수행할 일을 하나의 이름 아래 묶어 필요할 때 실행하도록 만든 단위다. [[자바스크립트]]에서 함수를 선언하는 일과 그 함수를 호출하는 일은 구별된다. 자기소개 문장을 바꾸는 함수를 만들어두어도 선언만으로 문장이 바뀌지는 않는다. 해당 함수를 호출할 때 묶어둔 동작이 실행된다. 같은 동작을 다시 해야 할 때는 그 이름을 다시 불러 사용할 수 있다. [[새로운 질서]]는 함수를 반복을 줄이는 방법인 동시에 생각을 나누고 이름 붙이는 방법으로 다룬다. 문장을 바꾼다는 이름의 함수가 색을 고르고 음악까지 재생한다면 [[함수 이름으로 예상한 동작]]과 실제 동작이 어긋난다. 일을 나누면 각각에 맞는 이름을 붙일 수 있다. 버튼의 [[이벤트]]와 연결할 동작을 고르거나 [[디버깅]]할 때도 어디를 살펴볼지 좁혀진다. ## 기타 등등 - 자바스크립트에서는 함수를 다른 함수에 건네거나 함수의 결과로 돌려줄 수 있다. 해야 할 일의 묶음 자체도 하나의 값처럼 움직인다. [출처](https://developer.mozilla.org/en-US/docs/Glossary/First-class_Function) - 안쪽 함수는 바깥 함수의 실행이 끝난 뒤에도 그때의 변수에 접근할 수 있다. 이 관계를 클로저라고 하며, 호출할 때마다 수를 세는 작은 카운터에도 쓰인다. [출처](https://developer.mozilla.org/en-US/docs/Glossary/Closure) #개념 #프로그래밍