Function.displayName
Не стандартно: Эта возможность не является стандартной и стандартизировать её пока никто не собирается. Не используйте её на сайтах, смотрящих во внешний мир: она будет работать не у всех пользователей. Также могут присутствовать большие несовместимости между реализациями и её поведение может в будущем измениться.
Сводка
Свойство function.displayName
возвращает отображаемое имя функции.
Описание
Если оно определено, свойство displayName
возвращает отображаемое имя функции:
function doSomething() {}
alert(doSomething.displayName); // "undefined"
var popup = function (content) {
alert(content);
};
popup.displayName = "Показать всплывающее окно";
alert(popup.displayName); // "Показать всплывающее окно"
Вы можете определить функцию с отображаемым именем в выражении функции:
var object = {
someMethod: function () {},
};
object.someMethod.displayName = "someMethod";
alert(object.someMethod.displayName); // выведет "someMethod"
try {
someMethod;
} catch (e) {
alert(e);
}
// ReferenceError: someMethod is not defined
Вы можете динамически изменять свойство displayName
функции:
var object = {
// анонимная функция
someMethod: function (value) {
this.displayName = "someMethod (" + value + ")";
},
};
alert(object.someMethod.displayName); // "undefined"
object.someMethod("123");
alert(object.someMethod.displayName); // "someMethod (123)"
Примеры
Обычно оно используется консолью и профилировщиком, как обёртка над func.name
для отображения имени функции.
Введя следующий пример в консоль, вы должны увидеть что-то вроде "function Моя функция()
":
var a = function () {};
a.displayName = "Моя функция";
a;
Спецификации
Не является частью какой-либо спецификации.
Совместимость с браузерами
BCD tables only load in the browser