Programming/Javascript
[Javascript] 명명된 인수
Bam_t
2022. 1. 15. 10:47
728x90
이번에 소개할 방식은 명명된 인수입니다. 명명된 인수는 함수를 호출할 때 이름을 명시할 수 있는 인수를 말합니다.
1. 명명된 인수
명명된 인수는 서론에서 이야기 한 대로 함수를 호출할 때 이름이 명시가능한 인수를 말합니다. 실제 사용예를 보면 다음과 같이 인수를 객체형으로 전달되는 인수들을 명명된 인수라고 이야기합니다.
getSum({ num1: 10, num2: 100 });
그럼 객체 리터럴로 전달하는 명명된 인수에는 어떤 장점이 있길래 사용하는 것 일까요? 명명된 인수는 다음과 같은 장점들을 가집니다.
- 생략가능한 인수의 표현이 쉽다.
- 인수의 순서 변경이 쉽다.
- 인수가 많아도 코드를 해석하기 쉽다.
위의 장점에 따라 명명된 인수는 아래 코드와 같은 표현도 가능합니다.
getSum({ num1: 10 }); //인수 생략
getSum({ num2: 100, num1: 10 }); //인수 순서 변경
구체적인 사용방법은 아래코드처럼 이용합니다.
const getSum = args => args.num1 + args.num2;
getSum({ num1: 10, num2: 100 });
이 예제를 가지고는 사실 명명된 인수의 사용이 좋다!라고는 느끼지 못할 수도 있습니다. 너무 간결한 예제라 명명된 인수로 인해 오히려 혼란을 주기 때문인데요. 그래서 보통은 다음 두 가지 경우에 대해서 명명된 인수를 사용합니다.
- 인수의 수가 많을 경우에 사용한다.
- 생략가능한 인수가 많은 경우에 사용한다.
2. 분할 대입을 이용한 명명된 인수 표현
ES2015에서는 분할 대입(객체 구조 분해 할당 참조)를 이용해서 명명된 인수를 더 간단하게 사용할 수 있습니다.
인수 부분의 객체 리터럴 부분를 다음과 같이 사용합니다.
{프로퍼티 = 기본값, ...}
const getSum = ({num1 = 1, num2 = 1}) =? num1 + num2;
getSum({ num1: 10, num2: 100 });
또한, 분할 대입을 사용했을 때는 인수 객체 리터럴에서 특정 프로퍼티만을 추출하는 것이 가능합니다.
const showName = ({name}) => name;
let navi = {
id: 101,
name: '나비',
age: 5,
};
console.log(showName(navi)); //'나비'
728x90