본문 바로가기

개발/javascript

함수12 - 매개변수의 최대 개수

"함수"

 

5.3. 매개변수의 최대 개수

ECMAScript 사양에서는 매개변수의 최대 개수에 대해 명시적으로 제한하고 있지 않다. 하지만 물리적 한계는 있으므로 자바스크립트 엔진마다 매개변수의 최대 개수에 대한 제한이 있겠지만 충분히 많은 매개변수를 지정할 수 있다. 매개변수는 최대 몇 개까지 사용하는 것이 좋을까?

 

매개변수는 순서에 의미가 있다. 따라서 매개변수가 많아지만 함수를 호출할 때 전달해야 할 인수의 순서를 고려해야 한다. 이는 함수의 사용 방법을 어렵게 만들고 실수를 발생시킬 가능성을 높인다. 또한 매개변수의 개수나 순서가 변경되면 함수의 호출 방법도 변경되므로 함수를 사용하는 코드 전체가 영향을 받는다. 즉, 유지보수성도 나빠진다.

 

함수의 매개변수 코드 이해에 방헤가 되는 요소이므로 이상적인 매개변수 개수는 0개이며 적을 수록 좋다. 매개변수가 많다는 것은 함수가 여러가지 일을 한다는 증거이므로 바람직하지 않다. 이상적인 함수는 한가지 일만 해야 하며 가급적 작게 만들어야 한다

 

따라서 매개변수는 최대 3개 이상을 넘지 않는 것을 권장한다. 만약 그 이상의 매개변수가 필요하다면 하나의 매개변수를 선언하고 객체를 인수로 전달받는 것이 유리하다. 아래는 jQuery의 ajax 메소드에 객체를 인수로 전달하는 예제이다.

$.ajax({
	method: 'POST',
	url: '/user',
	data: { id:1, name: 'Lee' },
	cache: false
});

객체를 인수로 사용하는 경우, 프로퍼티 키만 정확히 지정하면 매개변수의 순서를 신경쓰지 않아도 된다. 하지만 주의할 것은 함수 외붕에서 함수 내부로 전달한 객체를 함수 내부에서 변경하면 함수 외부의 객체가 변경되는 부작용이 발생한다는 것이다.

'개발 > javascript' 카테고리의 다른 글

함수14 - 외부 상태의 변경과 함수형 프로그래밍  (1) 2023.10.04
함수13 - 반환문  (0) 2023.10.04
함수11 - 인수 확인  (0) 2023.10.04
함수10 - 매개변수와 인수  (0) 2023.10.04
함수09 - 화살표 함수  (0) 2023.10.04