--- title: Function.prototype.toString() slug: Web/JavaScript/Reference/Global_Objects/Function/toString tags: - Function - JavaScript - Prototype - метод translation_of: Web/JavaScript/Reference/Global_Objects/Function/toString ---
{{JSRef}}

Метод toString() повертає рядкове представлення першокоду функції.

{{EmbedInteractiveExample("pages/js/function-tostring.html")}}

Синтаксис

function.toString()

Значення, що повертається

Рядкове представлення першокоду функції.

Опис

Об'єкт {{jsxref("Function")}} заміщує метод {{jsxref("Object.prototype.toString", "toString")}}, успадкований від {{jsxref("Object")}}; він не успадковує {{jsxref("Object.prototype.toString")}}. Для визначених користувачем об'єктів {{jsxref("Function")}} метод toString повертає рядок, який містить текстовий сегмент першокоду, що використовувався для визначення функції.

JavaScript викликає метод toString автоматично, коли {{jsxref("Function")}} потрібно відобразити у вигляді текстового значення, наприклад, при поєднанні функції з рядком.

Метод toString() викине виняток типу {{jsxref("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}"

Специфікації

Специфікації Статус Коментар
{{SpecName('ES1')}} {{Spec2('ES1')}} Початкове визначення. Реалізовано у JavaScript 1.1.
{{SpecName('ES6', '#sec-function.prototype.tostring', 'Function.prototype.toString')}} {{Spec2('ES6')}} Додані ще специфічні вимоги до рядкового представлення.
Function.prototype.toString revisions proposal Чернетка Стандартизує рядок нативної функції, закінчення рядків.
{{SpecName('ESDraft', '#sec-function.prototype.tostring', 'Function.prototype.toString')}} {{Spec2('ESDraft')}}

Сумісність з веб-переглядачами

{{Compat("javascript.builtins.Function.toString")}}

Примітки щодо Firefox

Див. також