JavaScript/Object/prototype/toString
表示
Object.prototype.toString()
は、オブジェクトを表す文字列を返すメソッドです。このメソッドは、オブジェクトの型や状態を文字列として表現するために使用されます[1]。
構文
[編集]obj.toString()
obj
: 文字列に変換する対象のオブジェクト。
例
[編集]オブジェクトを文字列に変換するプログラム
[編集]以下のプログラムは、Object.prototype.toString()
を使用してオブジェクトを文字列に変換します。
constobj={a:1,b:2};console.log(obj.toString());// [object Object]
このプログラムでは、obj
オブジェクトを文字列に変換しています。デフォルトでは、[object Object]
が返されます。
組み込みオブジェクトを文字列に変換するプログラム
[編集]以下のプログラムは、Object.prototype.toString()
を使用して組み込みオブジェクトを文字列に変換します。
constarr=[1,2,3];constnum=42;conststr='Hello';constdate=newDate();console.log(arr.toString());// "1,2,3"console.log(num.toString());// "42"console.log(str.toString());// "Hello"console.log(date.toString());// "Thu Oct 05 2023 14:30:00 GMT+0900 (Japan Standard Time)"
このプログラムでは、配列、数値、文字列、日付オブジェクトを文字列に変換しています。それぞれのオブジェクトの toString()
メソッドは、オブジェクトの内容を適切な文字列として返します。
カスタムオブジェクトの toString() メソッドをオーバーライドするプログラム
[編集]以下のプログラムは、Object.prototype.toString()
をオーバーライドしてカスタムオブジェクトの文字列表現を定義します。
functionPerson(name,age){this.name=name;this.age=age;}Person.prototype.toString=function(){return<code>${this.name}(${this.age}yearsold)</code>;};constperson=newPerson('Alice',30);console.log(person.toString());// "Alice (30 years old)"
このプログラムでは、Person
コンストラクタ関数の toString()
メソッドをオーバーライドして、カスタムの文字列表現を定義しています。
注意点
[編集]- デフォルトの動作:
Object.prototype.toString()
のデフォルトの動作は、[object Object]
を返します。ただし、多くの組み込みオブジェクトはこのメソッドをオーバーライドして、より有用な文字列を返します。 - 型の確認:
Object.prototype.toString()
は、オブジェクトの型を確認するためにも使用されます。例えば、Object.prototype.toString.call(obj)
を使用すると、obj
の型を示す文字列(例えば[object Array]
や[object Date]
)を取得できます。 - オブジェクト以外の引数:
toString()
は、オブジェクト以外の値に対して呼び出されると、その値をオブジェクトに変換しようとします。例えば、数値や文字列を渡すと、それらのラッパーオブジェクトのtoString()
メソッドが呼び出されます。 - プリミティブ値: プリミティブ値(数値、文字列、真偽値など)に対して
toString()
を呼び出すと、対応するラッパーオブジェクトのtoString()
メソッドが呼び出されます。
脚註
[編集]- ^これは、オブジェクトの文字列表現を取得するために使用されます。