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

Синтаксис

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 Latest Draft (ECMA-262)
The definition of 'Function.prototype.toString' in that specification.
Draft

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

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
toStringChrome Full support YesEdge Full support 12Firefox Full support 1IE Full support 5Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes
Support of toString revisionChrome No support NoEdge No support NoFirefox Full support 54IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android Full support 54Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support Nonodejs No support No

Legend

Full support  
Full support
No support  
No support

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

  • Починаючи з Firefox 17, метод Function.prototype.toString() був реалізований зберіганням першокоду функції. Декомпілятор був прибраний, щоб параметр indentation більше не був потрібний. Більше інформації дивіться на сторінці bug 761723.
  • Починаюи з Firefox 38 і до 63, метод Function.prototype.toString() викидав об'єкти Proxy (bug 1100936 та bug 1440468).

Див. також

Мітки документа й учасники

Зробили внесок у цю сторінку: DariaManko
Востаннє оновлена: DariaManko,