생활코딩

Coding Everybody

코스 전체목록

닫기

toString

요약(Summary)

배열의 원소를 콤마로 구분한 문자열을 리턴

문법(Syntax)

1
array.toString()

인자(Parameters)

없음

반환값(Return)

string, 배열의 원소를 콤마로 구분한 문자열

설명(Description)

(자바와 같은) 객체지향 언어들은 객체에 toString이라는 메소드를 기본적으로 제공한다.
일반적으로 toString은 그 객체를 설명해주는 문자열을 리턴한다.
그리고 객체의 toString을 덮어쓰기(overriding)하면 다른 형식의 문자열을 리턴할 수 있다.
문자열이 기대되는 곳에서 문자열이 아닌 객체를 사용하면 시스템은 암시적으로 toString을 호출한다.
예를들어 alert는 인자로 문자열이 기대되는데, alert([1,2])와 같이 배열을 전달하면 시스템은 [1,2].toString()을 호출한다. 그 결과는 1,2가 된다.
자바스크립트에서는 prototype을 이용해 객체의 메소드를 덮어쓰기(override)할 수 있다.

예제(Example)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// toString의 기본적인 동작
var numbers = ['one', 'two', 'three', 'four', 'five'];
alert(numbers.toString());
alert(numbers);
// prototype을 이용하면 객체의 toSting을 재정의(overriding)할 수 있다.
// 다음 코드는 배열의 toString을 오버로딩해서 alert의 표시 값을 변경할수 있다.
Array.prototype.toString = function(){
    var str = '';
    for(var i = 0; i < this.length; i++){
        str += i +':'+ this[i]+'\n';
    }
    return str;
}
var numbers = ['one', 'two', 'three', 'four', 'five'];
alert(numbers.toString());
alert(numbers);

참고

 

댓글

댓글 본문
  1. 우정민
    예제의 주석을 보면 객체의 toString을 재정의(overriding)을 할수 있다. 라고 되어있습니다.
    기존의 상속되는 toString을 재정의 하였기에 오버라이딩은 이해가 되는데,

    // 다음 코드는 배열의 toString을 오버로딩해서 alert의 표시 값을 변경할수 있다.

    라고 되어 있는부분에서 오버 로딩이 어떤 의미인지 혹시 여쭤봐도 될까요?

    오버로딩 : 같은 이름의 메소드를 여러 개 가지면서 매개 변수를 다르게 정의하는 것
    - 매개변수 타입이 달라야 한다.
    - 매개변수 개수가 달라야 한다.

    으로 알고있었는데, 제가 지식이 부족해서 조금 혼동이 오네요 ㅠ
  2. 푸른하늘
    13일차 공부 감사합니다
  3. ksecjh0513
    str 을 사용하기전 초기화를 해야합니다 오류가 발생할 수 있어요
    대화보기
    • jhkwak313@naver.com
      var str = ''; 이건 왜 정의 하는건가요?
    공동공부
    graphittie 자세히 보기