Метод toString()
повертає рядкове представлення першокоду функції.
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.
Синтаксис
function.toString()
Значення, що повертається
Рядкове представлення першокоду функції.
Опис
Об'єкт Function
заміщує метод toString
, успадкований від Object
; він не успадковує Object.prototype.toString
. Для визначених користувачем об'єктів Function
метод toString
повертає рядок, який містить текстовий сегмент першокоду, що використовувався для визначення функції.
JavaScript викликає метод toString
автоматично, коли Function
потрібно відобразити у вигляді текстового значення, наприклад, при поєднанні функції з рядком.
Метод toString()
викине виняток типу TypeError
("Function.prototype.toString called on incompatible object"), якщо його значення this
не є об'єктом Function
.
Function.prototype.toString.call('foo'); // TypeError
Якщо метод toString()
викликається на вбудованих функціональних об'єктах або функціях, створених Function.prototype.bind
, toString()
повертає рядок нативної функції, який виглядає так:
"function () {\n [native code]\n}"
Якщо метод toString()
викликається на функції, створеної конструктором Function
, toString()
повертає першокод синтезованої декларації функції, названої "anonymous", з наданими параметрами та тілом функції.
Приклади
Функція | Результат Function.prototype.toString |
---|---|
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}" |
Специфікації
Специфікації | Статус | Коментар |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Standard | Початкове визначення. Реалізовано у JavaScript 1.1. |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Function.prototype.toString' in that specification. |
Standard | Додані ще специфічні вимоги до рядкового представлення. |
Function.prototype.toString revisions proposal |
Чернетка | Стандартизує рядок нативної функції, закінчення рядків. |
ECMAScript (ECMA-262) The definition of 'Function.prototype.toString' in that specification. |
Living Standard |
Сумісність з веб-переглядачами
BCD tables only load in the browser
Примітки щодо Firefox
- Починаючи з Firefox 17, метод
Function.prototype.toString()
був реалізований зберіганням першокоду функції. Декомпілятор був прибраний, щоб параметрindentation
більше не був потрібний. Більше інформації дивіться на сторінці bug 761723. - Починаюи з Firefox 38 і до 63, метод
Function.prototype.toString()
викидав об'єктиProxy
(bug 1100936 та bug 1440468).