Object.toString

概要

オブジェクトを表す文字列を返します。

Object のメソッド
実装されたバージョン: JavaScript 1.0
ECMA バージョン: ECMA-262

構文

toString()

説明

全てのオブジェクトは toString メソッドを持ち、オブジェクトが文字列値として表されるべきときや、文字列が期待される構文で参照されたときに自動的に呼び出されます。デフォルトで、toString メソッドは Object の子孫にあたるあらゆるオブジェクトに継承されています。このメソッドがカスタムオブジェクト中で上書きされていない場合、toString[object type] を返します(type はそのオブジェクトの型)。以下のコードがこれを例示しています。

var o = new Object();
o.toString(); // [object Object] を返す

組み込みの toString メソッド

コア JavaScript オブジェクトはそれぞれ、そのオブジェクトを文字列に変換する必要があるときに適切な値を返す独自の toString メソッドを持っています。それらには以下のようなものがあります。

  • toString - Array オブジェクトのメソッド。
  • toString - Boolean オブジェクトのメソッド。
  • toString - Date オブジェクトのメソッド。
  • toString - Function オブジェクトのメソッド。
  • toString - JavaArray オブジェクトのメソッド。
  • toString - Number オブジェクトのメソッド。
  • toString - Object オブジェクトのメソッド。
  • toString - RegExp オブジェクトのメソッド。
  • toString - String オブジェクトのメソッド。

後方互換性

JavaScript 1.2

JavaScript 1.2 では、デフォルトの toString メソッドはオブジェクトリテラルを返します。

デフォルトの toString メソッドの上書き

あなたはデフォルトの toString メソッドに代わって呼び出される関数を作ることができます。toString メソッドは引数を取らず、文字列を返す必要があります。あなたが作った toString メソッドは好きな値にできますが、オブジェクトに関する情報を伝えるのが一番役に立つでしょう。

以下のコードは Dog オブジェクト型を定義し、Dog 型のオブジェクト theDog を生成しています。

function Dog(name,breed,color,sex) {
   this.name = name;
   this.breed = breed;
   this.color = color;
   this.sex = sex;
}

theDog = new Dog("Gabby","Lab","chocolate","female")

もしこのカスタムオブジェクト上で toString メソッドを呼び出した場合、メソッドは Object から継承されたデフォルト値を返します。

theDog.toString(); // [object Object] を返す

以下のコードはデフォルトの toString メソッドを上書きするのに使う関数 dogToString を生成し、toString メソッドに代入しています。この関数はオブジェクトの名前、品種、毛色、そして性別を "property = value;" の書式で含む文字列を生み出します。

Dog.prototype.toString = function dogToString() {
  var ret = "Dog " + this.name + " is a " + this.sex + " " + this.color + " " + this.breed;
  return ret;
}

以上のコードにより、theDog が文字列の文脈で使われた時にはいつでも、JavaScript は以下の文字列を返す dogToString 関数を自動的に呼び出します。

Dog Gabby is female chocolate Lab

参照

toSource, valueOf

Document Tags and Contributors

タグ:
Contributors to this page: Yuichirou, Potappo, ethertank, Mgjbot
最終更新者: ethertank,