Функция: 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 |
Нет |
Нет |
Нет |
Нет |
Нет |
? |
Нет |
Нет |
См. также
© 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