Spec-Zone.ru › JavaScript

Функция: displayName

Нестандартный: Эта функция нестандартна и не находится на стадии стандартизации. Не используйте ее на производственных сайтах, ориентированных на Веб: она не будет работать для всех пользователей. Также могут быть значительные несовместимости между реализациями, и поведение может измениться в будущем.

Нестандартный: Эта функция нестандартна и не находится на стадии стандартизации. Не используйте ее на производственных сайтах, ориентированных на Веб: она не будет работать для всех пользователей. Также могут быть значительные несовместимости между реализациями, и поведение может измениться в будущем.

Необязательное свойство displayName экземпляра Function определяет отображаемое имя функции.

Значение

Свойство displayName изначально не присутствует ни в одной функции — оно добавляется авторами кода. Для целей отображения оно должно быть строкой.

Описание

Свойство displayName, если оно присутствует, может быть предпочтено консолями и профилировщиками свойству name для отображения в качестве имени функции.

Среди браузеров только консоль Firefox использует это свойство. React devtools также используют свойство displayName при отображении дерева компонентов.

Firefox предпринимает некоторые базовые попытки декодировать displayName, которое, возможно, сгенерировано алгоритмом соглашения об именовании анонимных JavaScript функций. Обнаруживаются следующие шаблоны:

  • Если displayName заканчивается последовательностью буквенно-цифровых символов, _ и $, отображается самый длинный такой суффикс.
  • Если displayName заканчивается последовательностью символов, заключенных в [], эта последовательность отображается без квадратных скобок.
  • Если displayName заканчивается последовательностью буквенно-цифровых символов и _, за которыми следуют какие-либо /, . или <, возвращается последовательность без конечных символов /, . или <.
  • Если displayName заканчивается последовательностью буквенно-цифровых символов и _, за которыми следует (^), последовательность отображается без (^).

Если ни один из вышеперечисленных шаблонов не совпадает, отображается весь displayName.

Примеры

Установка displayName

При вводе следующего в консоли Firefox, оно должно отобразиться как что-то вроде function MyFunction():

function a() {}
a.displayName = "MyFunction";

a; // function MyFunction()

Динамическое изменение displayName

Вы можете динамически изменять displayName функции:

const object = {
  // anonymous
  someMethod: function someMethod(value) {
    someMethod.displayName = `someMethod (${value})`;
  },
};

console.log(object.someMethod.displayName); // undefined

object.someMethod("123");
console.log(object.someMethod.displayName); // "someMethod (123)"

Очистка displayName

Инструменты разработчика Firefox будут очищать несколько распространенных шаблонов в свойстве displayName перед его отображением.

function foo() {}

function testName(name) {
  foo.displayName = name;
  console.log(foo);
}

testName("$foo$"); // function $foo$()
testName("foo bar"); // function bar()
testName("Foo.prototype.add"); // function add()
testName("foo ."); // function foo .()
testName("foo <"); // function foo <()
testName("foo?"); // function foo?()
testName("foo()"); // function foo()()

testName("[...]"); // function ...()
testName("foo<"); // function foo()
testName("foo..."); // function foo()
testName("foo(^)"); // function foo()

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

Не является частью какого-либо стандарта.

Совместимость с браузерами

Настольные Мобильные Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android WebView на iOS Bun Deno Node.js
displayName
Нет
Нет
13
Нет
Нет
Нет
14
Нет
Нет
Нет
Нет
Нет
?
Нет
Нет

См. также

  • Function.prototype.name

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/displayName

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API