JavaScript метод Function.toString()
JavaScript FunctionОпределение и применение
JavaScript метод Function.toString() возвращает строку, представляющую исходный код функции.
Обращаю Ваше внимание, что объект Function не наследует, а переопределяет метод Object.prototype.toString()
Для пользовательских функций метод toString() возвращает строку, содержащую сегмент исходного текста, который использовался для определения функции. JavaScript вызывает метод toString() автоматически, когда функция должна быть представлена в виде текстового значения, например, когда функция конкатенируется со строкой.
Если метод toString() вызывается на встроенных объектах функции или функции, созданной c использованием метода Function.prototype.bind, то метод toString() возвращает собственную строку функции, которая выглядит следующим образом.
"function () {\n [native code]\n}"
Если метод toString() вызывается для функции, созданной конструктором Function, то возвращаемое значение будет соответствовать исходному коду синтезированного объявления функции с именем "anonymous", используя предоставленные параметры и тело функции.
Поддержка браузерами
Метод | Chrome | Firefox | Opera | Safari | IExplorer | Edge |
---|---|---|---|---|---|---|
toString() | Да | Да | Да | Да | Да | Да |
JavaScript синтаксис:
function.toString()
Версия JavaScript
1.1 (ECMAScript 1st Edition)Исключения
Тип исключения | Описание |
---|---|
TypeError | Возникает в том случае, если его значение this не является объектом Function. |
Пример использования
Функция | Результат вызова метода toString() |
---|---|
function f(){} | "function f(){}" |
class F { f(){} } | "class F { f(){} }" |
function* z(){} | "function* z(){}" |
z => z | "z => z" |
({ f(){} }.f) | "f(){}" |
({ *f(){} }.f) | "*f(){}" |
({ [0](){} }[0]) | "[0](){}" |
Object.getOwnPropertyDescriptor({ get z(){} }, "z").get | "get z(){}" |
Object.getOwnPropertyDescriptor({ set a(x){} }, "a").set | "set a(x){}" |
Function.prototype.toString | "function toString() { [native code] }" |
(functionf(){}.bind(0)) | "function () { [native code] }" |
Function( "a", "b" ) | "function anonymous(a\n) {\nb\n}" |