【JSリファレンス】Object.prototype.toString()
更新日:2024/06/14
Object.prototype.toString()は、Objectオブジェクト(Objectコンストラクターのインスタンス)のプロトタイプチェーンに組み込まれるメソッドです。
このメソッドは、通常は"[object Object]"を返します。
■構文
Object.prototype.toString ( )
- なし
■使用例
const obj = {};
console.log( obj.toString() ); // [object Object]
■備考
オブジェクト内に定義してプロトタイプ上のtoString()を上書きすることで、文字列連結等で独自文字列を使用できるようになります。
const obj = {
toString:()=>"Taro!"
};
console.log( "My Name is " + obj ); // My Name is Taro!
■備考:[Symbol.toStringTag]の利用
オブジェクトに[Symbol.toStringTag]プロパティが存在し値が文字列の場合、"[object Object]"の後方の"Object"が、[Symbol.toStringTag]プロパティ値で置き換えられます。
const obj = {
[Symbol.toStringTag]:"マイオブジェクト"
};
console.log( obj.toString() ); // [object マイオブジェクト]
ゲッターとして定義することで、内容を変化させることができます。
const obj = {
value:100,
get [Symbol.toStringTag](){
return this.value.toString(); // 文字列化必須
}
};
obj.value = 12345;
console.log( obj.toString() ); // [object 12345]
■this値の変更
call()等で配列以外の値をthis値とした場合、一部のオブジェクトは[Symbol.toStringTag]の有無にかかわらず、後方の"Object"が特定の文字列に置き換えられます。
this値 | 文字列 | 備考 |
---|---|---|
undefined値 | "Undefined" | |
null値 | "Null" | |
Arrayオブジェクト | "Array" | |
Argumentsオブジェクト | "Arguments" | |
Functionオブジェクト | "Function" | |
Errorオブジェクト | "Error" | TypeErrorなどを含む |
Booleanオブジェクト | "Boolean" | |
Numberオブジェクト | "Number" | |
Stringオブジェクト | "String" | |
Dateオブジェクト | "Date" | |
RegExpオブジェクト | "RegExp" |
※this値が undefined および null 以外の時、対応するオブジェクトに変換されます。
const toString = Object.prototype.toString;
console.log( toString.call(null) ); // [object Null]
console.log( toString.call(100) ); // [object Number]
console.log( toString.call("abc") ); // [object String]
console.log( toString.call( ()=>{}) ); // [object Function]
関連ページ
更新日:2024/06/14
スポンサーリンク
記事の内容について

こんにちはけーちゃんです。
説明するのって難しいですね。
「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。
裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。
掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。
ご意見、ご指摘はこちら。
https://jsref.affi-sapo-sv.com/info.php
このサイトは、リンクフリーです。大歓迎です。