オブジェクトを表す文字列を返します。
構文
obj.toString()
返り値
オブジェクトを表す文字列。
説明
全てのオブジェクトは toString
メソッドを持ち、オブジェクトが文字列値として表されるべきときや、文字列が期待される構文で参照されたときに自動的に呼び出されます。デフォルトで、toString
メソッドは Object
の子孫にあたるあらゆるオブジェクトに継承されています。このメソッドがカスタムオブジェクト中で上書きされていない場合、toString
は [object type]
を返します(type
はそのオブジェクトの型)。以下のコードがこれを例示しています。
var o = new Object(); o.toString(); // [object Object] を返す
注記: JavaScript 1.8.5から、toString( ) は null
で呼び出された場合に [object Null]
を、undefined
で呼び出された場合に [object Undefined]
を返します。これはECMAScript 5th Editionとその後のエラッタによって定義されました。オブジェクトクラスの検出に 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"
オブジェクトクラスの検出に toString( ) を使う
toString( ) はすべてのオブジェクトに対し、そのクラスを得るために使用することができます。すべてのオブジェクトで Object.prototype.toString( ) を使うためには、 Function.prototype.call()
または Function.prototype.apply()
を、第1引数 thisArg に調べたいオブジェクトを渡して呼び出す必要があります。
var toString = Object.prototype.toString;
toString.call(new Date); // [object Date]
toString.call(new String); // [object String]
toString.call(Math); // [object Math]
// JavaScript 1.8.5 から
toString.call(undefined); // [object Undefined]
toString.call(null); // [object Null]
仕様
仕様 | 状態 | コメント |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | 標準 | 初めての定義。 JavaScript 1.0 で実装された。 |
ECMAScript 5.1 (ECMA-262) Object.prototype.toString の定義 |
標準 | null で呼び出された場合は [object Null] を、 undefined で呼び出された場合は [object Undefined] を返す。 |
ECMAScript 2015 (6th Edition, ECMA-262) Object.prototype.toString の定義 |
標準 | |
ECMAScript 2017 Draft (ECMA-262) Object.prototype.toString の定義 |
ドラフト |
ブラウザ互換性
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) | (有) |
関連項目