Function.name

This article needs an editorial review. How you can help.

This is a new technology, part of the ECMAScript 2015 (ES6) standard.
This technology's specification has been finalized, but check the compatibility table for usage and implementation status in various browsers.

La propietat function.name retorna el nom de la funció.

Property attributes of Function.name
Writable no
Enumerable no
Configurable yes
Vegeu que en les implementacions no estàndards anteriors a ES6 l'atribut configurable també era false.

Descripció

La propietat name retorna el nom de la funció, o una cadena buida per les funcions anònimes.

function fesAlgo() {}

console.log(desAlgo.name); // escriu "fesAlgo"

Les funcions creades amb la sintaxis new Function(...) o sols Function(...)tenen la seva propietat name en una cadena buida. En els exemples següents es creen funcions anònimes , de forma que name retorna una cadena buida:

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

console.log(f.name == ''); // true
console.log(object.someMethod.name == ''); // també true

Es pot definir una funció amb un nom en un function expression:

var object = {
  someMethod: function object_someMethod() {}
};
console.log(object.someMethod.name); // logs "object_someMethod"

try { object_someMethod } catch(e) { console.log(e); }
// ReferenceError: object_someMethod no està definit

No es pot canviar el nom de la funció, aquesta propietat és només llegible:

var object = {
  // anònima
  someMethod: function() {}
};

object.someMethod.name = 'someMethod';
console.log(object.someMethod.name); // cadena buida, someMethod és anònima.

Per canviar-ho, es pot utilitzar Object.defineProperty().

Exemples

Es pot utilitzar obj.constructor.name per comprovar la "classe" d'un objecte:

function a() {}

var b = new a();

console.log(b.constructor.name); // escriu "a"

Especificacions

Especificació Estat Comentaris
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'name' in that specification.
Standard Definició inicial.

Comptabilitat amb navegadors

Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suport bàsic 33 (Yes) Not supported (Yes) (Yes)
Configurable: true 43 38 (38) ? ? ?
Característica Android Chrome per Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suport bàsic (Yes) (Yes) (Yes) Not supported (Yes) (Yes)
Configurable: true ? ? 38.0 (38) ? ? ?

Document Tags and Contributors

 Contributors to this page: llue
 Last updated by: llue,