• 티스토리 홈
  • 프로필사진
    KIMJAVAN
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
KIMJAVAN
  • 프로필사진
    KIMJAVAN
    • 개발 (160)
      • 마크업 언어 (19)
        • HTML (7)
        • CSS (12)
      • 자바스크립트 (85)
        • JavaScript (34)
        • JS Library (6)
        • React (13)
        • threeJS (6)
        • TypeScript (2)
        • Next js (5)
        • Node JS (18)
        • webGL (1)
      • AI (4)
        • chat-gpt (4)
      • flutter (17)
        • dart (11)
        • flutter (6)
      • Sql (3)
      • PHP (4)
      • Python (2)
      • Git (4)
      • vscode (1)
      • 개발 도움 사이트 (7)
      • 작업기록 (1)
      • 오류 모음 (3)
      • 메모장 (7)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [JavaScirpt] class 생성자 / 매개변수
        2025년 01월 23일
        • KIMJAVAN
        • 작성자
        • 2025.01.23.:21
        728x90

        자바스크립트에서 클래스는 생성자(constructor)를 사용하여 객체가 생성될 때 초기값을 받아옵니다. 만약에 클래스에서 다른 형식의 정보를 받을 수 있도록 하려면, 생성자에서 매개변수를 유연하게 설정하거나 조건부 로직을 추가하는 방법을 사용할 수 있습니다.

        1. 매개변수에 기본값 설정하기

        먼저, 클래스 생성자에서 매개변수로 받는 값을 유연하게 설정할 수 있어요. 예를 들어, 매개변수의 개수나 형식이 다르더라도 기본값을 설정하거나, 조건에 따라 다른 값을 처리할 수 있습니다.

        예시: 다양한 형식의 데이터를 받는 생성자

        class Info {
          constructor(a, b, c = '기본값', d = '추가값') {
            this.a = a;  // 필수값
            this.b = b;  // 필수값
            this.c = c;  // 선택값 (기본값: '기본값')
            this.d = d;  // 선택값 (기본값: '추가값')
          }
        
          display() {
            console.log(`a: ${this.a}, b: ${this.b}, c: ${this.c}, d: ${this.d}`);
          }
        }
        const obj1 = new Info('a값', 'b값');  
        obj1.display();  // a: a값, b: b값, c: 기본값, d: 추가값
        const obj2 = new Info('a값', 'b값', 'c값');
        obj2.display();  // a: a값, b: b값, c: c값, d: 추가값
        const obj3 = new Info('a값', 'b값', 'c값', 'd값');
        obj3.display();  // a: a값, b: b값, c: c값, d: d값

        여기서 **c와 d**는 기본값이 있기 때문에, 매개변수가 주어지지 않으면 기본값이 사용됩니다. 그래서 다양한 형식으로 객체를 만들 수 있습니다.

        2. 객체 속성의 조건에 따라 다른 값을 설정하기

        클래스의 생성자 내에서 조건부 로직을 추가하여 매개변수의 값을 다르게 처리할 수도 있습니다. 예를 들어, 어떤 값이 없으면 다른 값을 넣도록 하거나, 받은 데이터를 처리해서 다른 형태로 설정할 수 있습니다.

        예시: 조건에 따라 다른 값 설정하기

        class FlexibleInfo {
          constructor(a, b, c) {
            this.a = a;  // 필수값
            this.b = b;  // 필수값
        
            // c 값에 따라 다르게 처리
            if (c === undefined) {
              this.c = '기본값';
            } else if (typeof c === 'string') {
              this.c = `문자열: ${c}`;
            } else {
              this.c = `숫자: ${c}`;
            }
          }
        
          display() {
            console.log(`a: ${this.a}, b: ${this.b}, c: ${this.c}`);
          }
        }
        const obj1 = new FlexibleInfo('a값', 'b값');
        obj1.display();  // a: a값, b: b값, c: 기본값
        const obj2 = new FlexibleInfo('a값', 'b값', '문자');
        obj2.display();  // a: a값, b: b값, c: 문자열: 문자
        const obj3 = new FlexibleInfo('a값', 'b값', 123);
        obj3.display();  // a: a값, b: b값, c: 숫자: 123

        3. 배열이나 객체로 여러 값을 받기

        만약 여러 값을 하나의 매개변수로 받고 싶다면, 배열이나 객체를 사용하여 여러 값을 한번에 전달할 수도 있습니다.

        예시: 배열을 받아 여러 값을 처리하기

        class MultiInfo {
          constructor(a, b, ...args) {
            this.a = a;
            this.b = b;
            this.additionalInfo = args;  // 여러 값들을 배열로 처리
          }
        
          display() {
            console.log(`a: ${this.a}, b: ${this.b}, 추가 정보: ${this.additionalInfo.join(', ')}`);
          }
        }
        const obj = new MultiInfo('a값', 'b값', 'c값', 'd값', 'e값');
        obj.display();  // a: a값, b: b값, 추가 정보: c값, d값, e값

        위처럼 **...args**를 사용하면, 나머지 값들을 배열로 받을 수 있습니다. 따라서 입력되는 정보의 수가 다를 때 유용하게 사용할 수 있습니다.

         

        결론

        • 클래스의 생성자를 사용하면 유연하게 매개변수를 받아 다양한 형식의 객체를 만들 수 있습니다.
        • 기본값이나 조건문을 활용하여 입력되는 값에 따라 다른 처리 방식을 선택할 수 있습니다.
        • 배열이나 객체를 매개변수로 받아 여러 정보를 한 번에 받을 수도 있습니다.
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바