The toString()
method returns a string representing the source code of the function.
Function.prototype.toString()
Try it
Syntax
toString()
Return value
A string representing the source code of the function.
Description
The Function
object overrides the toString
method inherited from Object
; it does not inherit Object.prototype.toString
. For user-defined Function
objects, the toString
method returns a string containing the source text segment which was used to define the function.
JavaScript calls the toString
method automatically when a Function
is to be represented as a text value, e.g. when a function is concatenated with a string.
The toString()
method will throw a TypeError
exception ("Function.prototype.toString called on incompatible object"), if its this
value object is not a Function
object.
Function.prototype.toString.call('foo'); // TypeError
If the toString()
method is called on built-in function objects or a function created by Function.prototype.bind
, toString()
returns a native function string which looks like
"function () {\n [native code]\n}"
If the toString()
method is called on a function created by the Function
constructor, toString()
returns the source code of a synthesized function declaration named "anonymous" using the provided parameters and function body.
It's also possible to explicitly get the string representation of a function using the +
operator:
function foo() { return 'bar' } console.log(foo + ''); // "function foo() { return 'bar' }"
Examples
Comparing actual source code and toString results
Function | Function.prototype.toString result |
---|---|
function f(){} |
"function f(){}"
|
class A { a(){} } |
"class A { a(){} }"
|
function* g(){} |
"function* g(){}"
|
a => a |
"a => a"
|
({ a(){} }.a) |
"a(){}"
|
({ *a(){} }.a) |
"*a(){}"
|
({ [0](){} }[0]) |
"[0](){}"
|
Object.getOwnPropertyDescriptor({ get a(){} }, "a").get |
"get a(){}"
|
Object.getOwnPropertyDescriptor({ set a(x){} }, "a").set |
"set a(x){}"
|
Function.prototype.toString |
"function toString() { [native code] }"
|
(function f(){}.bind(0)) |
"function () { [native code] }"
|
Function("a", "b") |
"function anonymous(a\n) {\nb\n}"
|
Specifications
Browser compatibility
Desktop | Mobile | Server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | Deno | Node.js | |
toString |
1
|
12
|
1
|
5
|
3
|
1
|
1
|
18
|
4
|
10.1
|
1
|
1.0
|
1.0
|
0.10.0
|
toString_revision |
No
|
No
|
54
|
No
|
No
|
No
|
No
|
No
|
54
|
No
|
No
|
No
|
No
|
No
|
See also
© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/toString