概要
オブジェクトを表す文字列を返します。
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
メソッドを持っています。それらには以下のようなものがあります。
後方互換性
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