Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Сводка

Свойство function.name возвращает имя функции.

Атрибуты свойстваFunction.name
Записываемое нет
Перечисляемое нет
Настраиваемое да

Описание

Свойство name возвращает имя функции, либо пустую строку для анонимных функций:

function doSomething() {}

alert(doSomething.name); // выведет "doSomething"

Функции, созданные синтаксисом new Function(...) или просто Function(...) имеют в качестве ствойства name пустую строку. В следующих примерах создаются анонимные функции, так что свойство name возвращает пустую строку:

var f = function() {};
var object = {
  someMethod: function() {}
};

alert(f.name == ''); // true
alert(object.someMethod.name == ''); // также true

Вы можете определить функцию с именем с помощью выражения функции:

var object = {
  someMethod: function object_someMethod() {}
};
alert(object.someMethod.name); // выведет "object_someMethod"

try { object_someMethod } catch(e) { alert(e); }
// ReferenceError: object_someMethod is not defined

Вы не можете изменить имя функции, это свойство только для чтения:

var object = {
  // анонимная функция
  someMethod: function() {}
};

object.someMethod.name = 'someMethod';
alert(object.someMethod.name); // пустая строка, someMethod является анонимной функцией

Примеры

Вы можете использовать obj.constructor.name для проверки «класса» объекта:

function a() {}

var b = new a();

alert(b.constructor.name); // выведет "a"

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

Спецификация Статус Комментарии
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'name' в этой спецификации.
Стандарт Изначальное определение.

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

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Возможность Chrome Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка (Да) (Да) Нет (Да) (Да)
Поддержка настраиваемости ? 38 (38) ? ? ?
Возможность Android Chrome для Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка (Да) (Да) (Да) Нет (Да) (Да)
Поддержка настраиваемости ? ? 38.0 (38) ? ? ?

Метки документа и участники

Внесли вклад в эту страницу: SphinxKnight, Mingun, teoli, Lord_Howe
Обновлялась последний раз: SphinxKnight,