javascript 사전

toString

요약(Summary)

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

문법(Syntax)

array.toString()

인자(Parameters)

없음

반환값(Return)

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

설명(Description)

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

예제(Example)

// 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 = ''; 이건 왜 정의 하는건가요?