Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

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

Function

BaselineWidely available *

Cada función de JavaScript en realidad es un objetoFunction. Esto se puede ver con el código(function() {}).constructor === Function, que devuelvetrue.

Constructor

Function()

Crea un nuevo objetoFunction. Llamar al constructor directamente puede crear funciones dinámicamente, pero tiene problemas de seguridad y de rendimiento similares (pero mucho menos importantes) paraeval. Sin embargo, a diferencia deeval, el constructorFunction crea funciones que solo se ejecutan en el ámbito global.

Propiedades de la instancia

Function.arguments

Un arreglo que corresponde a los argumentos pasados a una función.Esto está obsoleto como propiedad deFunction. En su lugar, utiliza el objetoarguments (disponible dentro de la función).

Function.caller

Especifica la función que invocó a la función que se está ejecutando actualmente.Esta propiedad está obsoleta, y solo es funcional para algunas funciones no estrictas.

Function.displayName

El nombre a mostrar de la función.

Function.length

Especifica el número de argumentos que espera la función.

Function.name

El nombre de la función.

Métodos de instancia

Function.prototype.apply(thisArg [,argsArray])

Llama a una función y establece suthis en elthisArg proporcionado. Los argumentos se pueden pasar como un objetoArray.

Function.prototype.bind(thisArg[,arg1[,arg2[, ...argN]]])

Crea una nueva función que, cuando se llama, tiene suthis configurado en elthisArg. Opcionalmente, una determinada secuencia de argumentos se antepondrá a los argumentos siempre que se llame a la función recién invocada.

Function.prototype.call(thisArg[,arg1,arg2, ...argN])

Llama a una función y establece suthis en el valor proporcionado. Los argumentos se pueden pasar tal cual.

Function.prototype.toString()

Devuelve una cadena que representa el código fuente de la función.Redefine el métodoObject.prototype.toString().

Ejemplos

Diferencia entre el constructor Function y la declaración function

Las funciones creadas con el constructorFunction no crean cierres para sus contextos de creación; siempre se crean en el ámbito global. Al ejecutarlos, solo podrán acceder a sus propias variables locales y globales, no a las del ámbito en el que se creó el constructorFunction. Esto es diferente de usareval con código para una expresión de función.

js
var x = 10;function createFunction1() {  var x = 20;  return new Function("return x;"); // esta |x| se refiere a la |x| global}function createFunction2() {  var x = 20;  function f() {    return x; // esta |x| se refiere a la |x| local  }  return f;}var f1 = createFunction1();console.log(f1()); // 10var f2 = createFunction2();console.log(f2()); // 20

Si bien este código funciona en los navegadores web,f1() producirá unReferenceError en Node.js, ya que no encontrará ax. Esto se debe a que el ámbito de nivel superior en Node no es el ámbito global, yx será local para el módulo.

Especificaciones

Specification
ECMAScript® 2026 Language Specification
# sec-function-objects

Compatibilidad con navegadores

Ve también

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp