Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnología web para desarrolladores
  2. JavaScript
  3. Referencia de JavaScript
  4. Objetos globales
  5. Function
  6. Function.name

Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.

View in EnglishAlways switch to English

Function.name

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨agosto de 2016⁩.

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

Atributos de la propiedadFunction.name
SobrescribirNo
NumerableNo
Configurable

Nótese que en implementaciones no estándar previas a ES2015 el atributoconfigurable también erafalse.

Descripción

Nombre de una declaración de función

La propiedadname retorna el nombre de una declaración de función.

js
function doSomething() {}console.log(doSomething.name); // imprime en pantalla "doSomething"

Nombre de constructor de función

Las funciones creadas con la sintaxisnew Function(...) o simplementeFunction(...) tienen como propiedadname una cadena vacía. En los ejemplos a continuación se crean funciones anónimas, tales que suname retorna una cadena vacía:

js
var f = function () {};var object = {  someMethod: function () {},};console.log(f.name == ""); // trueconsole.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:

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

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

js
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:

js
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 usarObject.defineProperty() para cambiarlo.

Nombres de métodos

js
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.

js
function foo() {}foo.bind({}).name; // "bound foo"

Nombres de funciones getters y setters

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

js
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 usarobj.constructor.name para saber cuál es la "clase" de un objeto:

js
function a() {}var b = new a();console.log(b.constructor.name); // imprime "a"

Especificaciones

Specification
ECMAScript® 2026 Language Specification
# sec-function-instances-name

Compatibilidad con navegadores

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp