munifico.github.io

munifico's anything page

Follow me on GitHub

문자열 표현

모든 객체는 Object를 상속하므로 Object의 메서드는 기본적으로 모든 객체에서 사용할 수 있습니다. 객체의 기본적인 문자열 표현을 제공하는 toString도 그런 메서드 중 하나입니다. toString의 기본 동작은 “[object object]”를 반환하는 것인데, 이건 거의 쓸모 없습니다.

toString 메서드에서 객체의 중요한 정보를 제공한다면 디버깅에도 유용하고, 객체를 한 눈에 파악할 수 있습니다. Car 클래스의 toString 메서드가 제조사, 모델, VIN을 반환하도록 고쳐봅시다.

class Car {
    toString() {
        return `${this.make} ${this.model} ${this.vin}`;
    }
}

이제 Car의 인스턴스에서 toString을 호출하면 객체 식별에 필요한 정보를 얻을 수 있습니다.

munifico의 생각 : Car의 인스턴스는 루트 클래스인 Object의 상속입니다. 루트 클래스이자 슈퍼클래스인 Object의 메서드 중 toString을 Car에서 재정의(override)함으로서, 프로토타입의 toString이 아닌 Car의 toString이 호출됩니다.


이전 : 객체 프로퍼티 나열 다시 보기
다음 : 다중 상속, 믹스인, 인터페이스
목차