Javascript 커링(Currying)

주땡이·2024년 3월 10일

JS

목록 보기
9/12

자바스크립트 화살표 함수를 배우면서 난생 처음보는 문법을 보게 되었다.
화살표 함수에서 화살표가 연이어 나오는 신기한 문법이었다.

function sumNumber() {
	return addNumber (1) (2) (3)
    function addNumber(a) {
    	return function (b) {
        	return function (c) {
            	return a + b + c
              }
           }
  	    }
     }
	console.log(sumNumver())

함수가 함수를 리턴하고 또 함수를 리턴하고 한 번 더 함수를 리턴한다.

이 함수를 화살표 함수로 바꾸는 게 내게 주어진 과제였다. 이게 뭐냐..

sumNumber()함수를 화살표로 바꾸는 것부터 해보자는 마음으로 천천히 차근차근 접근했다.

// 우선 첫번째 return부터 화살표 함수로 바꿔보자.

const sumNumber = () {
	return addNumber (1) (2) (3)
	const addNumber = (a) => {
    	return function (b) {
        	return function (c) {
            	return a + b + c
              }
           }
  	    }
}

내가 알고있는 화살표 함수의 모양은

const 함수이름 = () => {}

이렇게 생겼으니 나머지 return부분도 차근차근 풀어가면 된다.

const sumNumber = () {
	return addNumber (1) (2) (3)
	const addNumber = (a) => (b) {
        	return function (c) {
            	return a + b + c
           }
  	    }
}

이런식으로 풀어가면 아래와 같은 코드가 된다.

const sumNumber = () {
    return addNumber(1)(2)(3)
	const addNumber = (a) => (b) => (c)=> a + b + c

}

console.log(sumNumber())

그러나 이것보다 더 간단하게 작성할 수 있는 방법이 있다.

const sumNumber = (a) => (b) => (c) => a + b + c
console.log(sumNumber(1)(2)(3))

함수를 호출할 때 인자를 파라미터를 넘겨주면 보다 깔끔한 코드가 완성된다.

profile
내가 보려고 만들었습니당

0개의 댓글