Function.prototype.toString()
The toString()
method returns a string representing the source code of the function.
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 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
toString |
1 |
12 |
1 |
5 |
3 |
1 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
toString_revision |
No |
No |
54 |
No |
No |
No |
No |
No |
54 |
No |
No |
No |
See also
© 2005–2021 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