A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Function/name below:

Function.name - JavaScript | MDN

Function.name

Baseline Widely available

La propiedad function.name retorna el nombre de la función o retorna "anonymous" por funciones creadas anónimamente.

Sobrescribir No Numerable No Configurable Sí

Nótese que en implementaciones no estándar previas a ES2015 el atributo configurable también era false.

Descripción Nombre de una declaración de función

La propiedad name retorna el nombre de una declaración de función.

function doSomething() {}

console.log(doSomething.name); // imprime en pantalla "doSomething"
Nombre de constructor de función

Las funciones creadas con la sintaxis new Function(...) o simplemente Function(...) tienen como propiedad name una cadena vacía. En los ejemplos a continuación se crean funciones anónimas, tales que su name retorna una cadena vacía:

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

console.log(f.name == ""); // true
console.log(object.someMethod.name == ""); // también true
Nombres de función inferidos

Los navegadores que implementan funciones ES2015 pueden inferir el nombre de una función anónima de su posición sintáctica. Por ejemplo:

var f = function () {};
console.log(f.name); // "f"

Se puede definir una función con un nombre en un function expression:

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

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

No se puede cambiar el nombre de una función, esta propiedad es de solo lectura:

var object = {
  // anonymous
  someMethod: function () {},
};

object.someMethod.name = "someMethod";
console.log(object.someMethod.name); // cadena vacía, someMethod es anónimo

Sin embargo, se puede usar Object.defineProperty() para cambiarlo.

Nombres de métodos
var o = {
  foo() {},
};
o.foo.name; // "foo";
Nombres de funciones atadas (creadas con .bind())

Function.bind() produce una función cuyo nombre es igual a "bound " seguido del nombre de la función original.

function foo() {}
foo.bind({}).name; // "bound foo"
Nombres de funciones getters y setters

Cuando se usan get y set,"get" y "set" aparecerán en el nombre de la función.

var o = {
  get foo() {},
  set foo(x) {},
};

var descriptor = Object.getOwnPropertyDescriptor(o, "foo");
descriptor.get.name; // "get foo"
descriptor.set.name; // "set foo";
Ejemplos

Se puede usar obj.constructor.name para saber cuál es la "clase" de un objeto:

function a() {}

var b = new a();

console.log(b.constructor.name); // imprime "a"
Especificaciones Compatibilidad con navegadores

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4