Function.prototype.toString() - JavaScript 编辑
The toString()
method returns a string representing the source code of the function.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.Syntax
function.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
Specification |
---|
ECMAScript (ECMA-262) The definition of 'Function.prototype.toString' in that specification. |
Browser compatibility
BCD tables only load in the browser
See also
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论