Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript ES6 중첩 객체 기본 매개변수 완벽 정리 – 구조 분해 할당 활용법

중첩 객체에도 기본 매개변수를 설정할 수 있을까?

네, 가능합니다. ES6(ECMAScript 2015)의 구조 분해 할당(Destructuring Assignment)을 활용하면 함수 매개변수로 전달되는 중첩 객체의 각 속성에도 기본값을 손쉽게 지정할 수 있습니다. 이 방식은 호출자가 인자를 생략하거나 일부 속성만 전달했을 때 코드가 안전하게 동작하도록 보장해 줍니다.

예제 코드

다음 예제는 중첩 객체 cl 내부의 callFunctionNamevalues 두 속성에 기본값을 설정하는 방법을 보여줍니다.

function callBackFunctionDemo({ cl: { callFunctionName = "callBackFunction", values = 100 } = {} } = {}) {
    console.log(callFunctionName);
    console.log(values);
}

// 인자 없이 호출 → 기본값 사용 // callBackFunction, 100
callBackFunctionDemo();

// 일부 값만 전달 → 전달한 값 사용 // callBackFunction, 500
callBackFunctionDemo({ cl: { values: 500 } });

코드 해설

  • 외부 기본값 = {}: 함수가 아무 인자 없이 호출되더라도 오류가 발생하지 않도록 최상위 레벨에 빈 객체를 기본값으로 지정합니다.
  • 내부 기본값 = {}: 객체는 전달되었지만 cl 속성이 없는 경우를 대비해 중첩 객체에도 빈 객체를 기본값으로 설정합니다.
  • 속성별 기본값: callFunctionName은 "callBackFunction", values는 100이 기본값으로 적용됩니다.

프로그램 실행 방법

위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력합니다. 여기서는 파일 이름이 demo296.js라고 가정합니다.

node demo296.js

실행 결과

콘솔에는 다음과 같은 출력이 표시됩니다.

PS C:\Users\Amit\javascript-code> node demo296.js
callBackFunction
100
callBackFunction
500

첫 번째 호출에서는 어떤 인자도 전달하지 않았기 때문에 모든 기본값이 적용되어 callBackFunction100이 출력됩니다. 반면 두 번째 호출에서는 values: 500만 명시적으로 전달했으므로, values는 전달된 값인 500이 되고 callFunctionName은 여전히 기본값이 유지됩니다.

정리

중첩 객체의 기본 매개변수는 각 구조 분해 단계마다 기본값(= {})을 지정하는 것이 핵심입니다. 이 패턴을 사용하면 API 옵션 객체나 설정 객체를 다룰 때 필수 속성 누락으로 인한 런타임 오류를 효과적으로 방지할 수 있으며, 코드의 가독성과 견고성이 크게 향상됩니다.