JavaScript

[JavaScript] 커링이란?

hid1 2023. 9. 20. 00:12

커링이란?

커링이라는 단어를 처음보고 찾아보게 되었다. 만약에 function(a,b)와 같이 두 개의 매개 변수를 받는다고 가정하자. 이 함수는 매개 변수를 한 번에 받아 한 번만 호출하도록 구현됐음을 알 수 있다. 하지만 커링은 function(a)(b)처럼 인수를 하나씩 받는 방법을 의미한다.

 

function hello(name){
	return function(age){
		return function(job){
			return `이름: ${name}, 나이: ${age}, 직업: ${job}`
		}
	}
}

hello('아이유')(30)('가수')
// 이름: 아이유, 나이: 30, 직업: 가수

다음과 같이 사용할 수 있다. 커링된 함수는 첫 번째 인수를 받아서 그에 따른 함수를 반환하고, 그 반환된 함수에 다음 인수를 전달하여 값을 계산하는 방식으로 동작한다.

 

왜 커링을 사용할까?

커링을 어떤 상황에서 사용하는지 궁금하였다. 대표적으로 커링을 사용하면 함수에 필요한 일부 인수를 미리 고정할 수 있는 장점이 있다.  이를 통해 특정한 상황에서 함수를 더 쉽게 사용할 수 있다.

const helloIU = hello('아이유')

helloIU(30)('가수') // 이름: 아이유, 나이: 30, 직업: 가수
helloIU(31)('배우') // 이름: 아이유, 나이: 31, 직업: 배우

이처럼 name  인수를 고정한 함수를 반환하여 함수를 재사용할 수 있다는 장점이 있다.

 

 

 

반응형