mozilla

Compare Revisions

Error.prototype.toString()

Change Revisions

Revision 441083:

Revision 441083 by getify on

Revision 441091:

Revision 441091 by Waldo on

Title:
toString
toString
Slug:
Web/JavaScript/Reference/Global_Objects/Error/toString
Web/JavaScript/Reference/Global_Objects/Error/toString
Content:

Revision 441083
Revision 441091
n44<code><em>error</em>.toString()</code>n44<code>var str = <em>error</em>.toString();</code>
n56      The <a href="/en-US/docs/JavaScript/Reference/Global_Objectn56      The <a href="/en-US/docs/JavaScript/Reference/Global_Object
>s/Error" title="JavaScript/Reference/Global_Objects/Error">Error<>s/Error" title="JavaScript/Reference/Global_Objects/Error">Error<
>/a> object overrides the <code><a href="/en-US/docs/JavaScript/Re>/a> object overrides the <code><a href="/en-US/docs/JavaScript/Re
>ference/Global_Objects/Object/toString" title="JavaScript/Referen>ference/Global_Objects/Object/toString" title="JavaScript/Referen
>ce/Global_Objects/Object/toString">Object.prototype.toString</a><>ce/Global_Objects/Object/toString">Object.prototype.toString</a><
>/code> method inherited by all objects. According to <a href="htt>/code> method inherited by all objects.&nbsp; Its semantics are a
>p://es5.github.io/#x15.11.4.4" title="ECMA-262 v5">ECMA-262 versi>s follows (assuming <code>Object</code> and <code>String</code> h
>on 5</a>, this method joins string representations of the <code><>ave their original values):
>a href="/en-US/docs/JavaScript/Reference/Global_Objects/Error/nam 
>e" title="JavaScript/Reference/Global_Objects/Error/name">name</a 
>></code> and <code><a href="/en-US/docs/JavaScript/Reference/Glob 
>al_Objects/Error/message" title="JavaScript/Reference/Global_Obje 
>cts/Error/message">message</a></code> properties with a colon and 
> a space separating the two. If the string representation of <cod 
>e><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Error/ 
>name" title="JavaScript/Reference/Global_Objects/Error/name">name 
></a></code> is empty, it is set to "Error". If the string represe 
>ntation of <code><a href="/en-US/docs/JavaScript/Reference/Global 
>_Objects/Error/message" title="JavaScript/Reference/Global_Object 
>s/Error/message">message</a></code> is empty, it remains the empt 
>y "" string. If both properties' string representations are empty 
> strings, this method just returns "Error". 
nn58    <pre class="brush:js">
59Error.prototype.toString = function()
60{
61  "use strict";
62 
63  var obj = Object(this);
64  if (obj !== this)
65    throw new TypeError();
66 
67  var name = this.name;
68  name = (name === undefined) ? "Error" : String(name);
69 
70  var msg = this.message;
71  msg = (msg === undefined) ? "" : String(msg);
72 
73  if (name === "" &amp;&amp; msg === "")
74    return "Error";
75  if (name === "")
76    return msg;
77  if (msg === "")
78    return name;
79 
80  return name + ": " + msg;
81};
82</pre>
n63e.toString(); // returns "Error: fatal error"n88print(e.toString()); // "Error: fatal error"
n66e.toString(); // returns "Error: fatal error"n91print(e.toString()); // "Error: fatal error"
92 
93e.name = "";
94print(e.toString()); // "fatal error"
n69e.toString(); // returns "Error"n97print(e.toString()); // "Error"
t71e.name = "Error";t99e.name = "hello";
72e.toString(); // returns "Error"100print(e.toString()); // "hello"

Back to History