러닝 자바스크립트 스터디 자료 - CHAPTER 13. 함수와 추상적 사고

서브루틴으로서의 함수

서브루틴은 아주 오랜 된 개념이며 복잡한 코드를 간단하게 만드는 기초적인 수단입니다.
서브루틴은 프로시저, 루틴, 서브프로그램, 매크로 등 다양한 이름으로 불립니다. 이들은 모두 매우 단순하고 범용적인 호출 할수 있는 한 단위를 일컫는 말이다.

함수로서의 함수

순수함수 - 순수함수에서는 입력이 같으면 결과도 반드시 같다.
순수함수에는 부수효과가 없어야 한다.
함수도 객체다. 자바스크립트 함수는 Function 객체의 인스턴스이다.

변수로서의 함수

함수를 가리키는 변수를 만들어 별명을 정할 수 있다,
배열에 함수를 넣을 수 있습니다. 물론 다른 타입의 데이터와 섞일 수 있습니다.
함수를 객체의 프로퍼티로 사용할 수 있습니다.
함수를 함수에 전달 할 수 잇습니다.
함수가 함수를 반환 할 수 있습니다.
함수를 매개변수로 받는 함수를 반환하는 것도 물론 가능합니다.

배열 안의 함수

배열을 사용하면 작업 단계를 언제든 쉽게 바꿀 수 있다는 장점이 있다.
어떤 작업을 빼야 한다면 배열에서 제거하기만 하면되고, 추가할 작업이 있다면 배열에 추가하기만 하면 된다.

함수의 함수 전달

함수에 함수를 전달하는 다른 용도는 비동기적 프로그래밍입니다. 이런 용도로 전달하는 함수를 보통 콜백이라 부르며 약자로 cb를 쓸때가 많습니다. 콜백 함수는 자신을 감싼 함수가 실행을 마쳤을때 호출됩니다.
함수에 함수를 전달하는 대표적인 사례가 콜백이긴 하지만 그게 전부는 아니다.
함수는 동작이고, 함수를 받은 함수는 그 동작을 활용할 수 있다.

함수를 반환하는 함수

매개변수 여러개를 받는 함수를 매개변수 하나만 받는 함수로 바꾸는 것을 커링 이라고 부른다.
커링이라는 이름은 이 패턴을 만든 미국의 수학자 하스켈 커리의 이름을 딴것이다.

재귀

재귀 역시 널리 쓰이며 함수를 활용하는 중요한 패턴입니다, 재귀자기 자신을 호출하는 함수 입니다.
같은 일을 반복하면서 그 대상이 점차 줄어드는 상황에서 재귀를 유용하게 활용 할 수 있습니다.
재귀 함수에는 종료조건이 있어야 합니다. 종료 조건이 없다면 자바스크립트 인터프리터에서 스택이 너무 깊다고 판단할 때까지 재귀 호출을 계속하다가 프로그램이 멈춥니다.

함수형프로그래밍

어떤 방법이 ‘더 좋은’ 방법인가? 이 질문에 정확한 답은 없다. 여러가지 상황에 맞추어 사용하면된다.

댓글

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×