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

자바스크립트에서 새로운 데이터 유형을 만드는 방법 – 클래스와 instanceof 활용

네, 가능합니다!

자바스크립트에서는 클래스(Class) 개념을 활용하면 사실상 새로운 데이터 유형을 정의할 수 있습니다. 그리고 생성된 객체의 실제 데이터 유형을 확인하고 싶다면 instanceof 연산자를 사용하면 됩니다.

instanceof는 객체가 특정 클래스의 인스턴스인지 판별하여 데이터 유형 정보를 알려주는 연산자입니다. 아래 예제 코드는 새로운 데이터 유형(사용자 정의 클래스)을 만드는 방법과, 해당 객체의 데이터 유형을 확인하는 방법을 보여줍니다. 여기서는 기본 typeof만으로는 부족한 상황을 대비해, 데이터 유형을 확인하는 커스텀 함수도 함께 구현했습니다.

예제 코드

// 클래스 생성
class Game {
    constructor(gameName) {
        this.gameName = gameName;
    }
}

// 객체 생성
const ticTacToe = new Game("TicTacToe");

// 데이터 유형 확인 함수
function dataTypeBelongsTo(object) {
    if (object instanceof Game)
        return "Game";
    return typeof object;
}

console.log("ticTacToe는 Game 클래스의 인스턴스인가? = " + (ticTacToe instanceof Game));
console.log("ticTacToe의 데이터 유형 = " + dataTypeBelongsTo(ticTacToe));
console.log("Candy Cash의 데이터 유형 = " + dataTypeBelongsTo("Candy Cash"));

프로그램 실행 방법

위 프로그램을 실행하려면 터미널에서 다음 명령어를 입력하세요.

node fileName.js

여기서는 파일 이름이 demo288.js라고 가정합니다.

실행 결과

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

PS C:\Users\Amit\javascript-code> node demo288.js
ticTacToe는 Game 클래스의 인스턴스인가? =true
ticTacToe의 데이터 유형 =Game
Candy Cash의 데이터 유형 =string

핵심 포인트 정리

  • ES6 클래스를 사용하면 Game처럼 사용자 정의 데이터 유형을 손쉽게 만들 수 있습니다.
  • typeof는 문자열, 숫자 같은 원시 타입만 구분하며, 객체는 모두 "object"로 반환되므로 한계가 있습니다.
  • instanceof는 객체가 어떤 클래스에서 생성되었는지 정확하게 판별할 수 있어, 사용자 정의 데이터 유형 검사에 적합합니다.
  • 커스텀 함수 안에서 instanceoftypeof를 조합하면 원시 타입과 사용자 정의 타입을 모두 처리할 수 있습니다.