Не стандартно
Эта возможность не является стандартной и стандартизировать её пока никто не собирается. Не используйте её на сайтах, смотрящих во внешний мир: она будет работать не у всех пользователей. Также могут присутствовать большие несовместимости между реализациями и её поведение может в будущем измениться.
Сводка
Свойство 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
Спецификации
Не является частью какой-либо спецификации.
Совместимость с браузерами
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | ? | 13 (13) | ? | ? | ? |
Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | ? | ? | ? | ? | ? | ? |