Function.displayName

No estándar: Esta característica no es parte de los estándares. No la uses en sitios Web en producción: no funcionará para todos los usuarios. Podrían haber también incompatibilidades considerables entre distintas implementaciones y el comportamiento podría cambiar en el futuro.

The function.displayName property returns the display name of the function.

Description

Cuando se define la propiedad displayName , retorna un mensaje con el nombre para mostrar en una función:

function doSomething() {}

console.log(doSomething.displayName); // "undefined"

var popup = function(content) { console.log(content); };

popup.displayName = 'Show Popup';

console.log(popup.displayName); // "Show Popup"

Tu puedes definir una funcion con un nombre a mostrar en un function expression:

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

object.someMethod.displayName = 'someMethod';

console.log(object.someMethod.displayName); // logs "someMethod"

try { someMethod } catch(e) { console.log(e); }
// ReferenceError: someMethod is not defined

Puedes cambiar dinámicamente el displayName de una función:

var object = {
  // anonymous
  someMethod: function(value) {
    arguments.callee.displayName = 'someMethod (' + value + ')';
  }
};

console.log(object.someMethod.displayName); // "undefined"

object.someMethod('123')
console.log(object.someMethod.displayName); // "someMethod (123)"

Ejemplos

Normalmente, se prefiere por consolas y profilers sobre func.name a mostrar el nombre de una función.

Al ingresar lo siguiente en una consola, debería mostrarse como algo así como "function My Function()":

var a = function() {};
a.displayName = 'My Function';

a; // "function My Function()"

Specifications

Not part of any specification.

Browser compatibility

BCD tables only load in the browser