[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Function [Back]  [Original]

Function - JavaScript | MDN

Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.

View in English Always switch to English

Function

Baseline Widely available *

This feature is well established and works across many devices and browser versions. Its been available across browsers since julio de 2015.

* Some parts of this feature may have varying levels of support.

Cada funcin de JavaScript en realidad es un objeto Function. Esto se puede ver con el cdigo (function() {}).constructor === Function, que devuelve true.

In this article

Constructor

Function()

Crea un nuevo objeto Function. Llamar al constructor directamente puede crear funciones dinmicamente, pero tiene problemas de seguridad y de rendimiento similares (pero mucho menos importantes) para eval. Sin embargo, a diferencia de eval, el constructor Function 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 funcin. Esto est obsoleto como propiedad de Function. En su lugar, utiliza el objeto arguments (disponible dentro de la funcin).

Function.caller

Especifica la funcin que invoc a la funcin 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 funcin.

Function.length

Especifica el nmero de argumentos que espera la funcin.

Function.name

El nombre de la funcin.

Mtodos de instancia

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

Llama a una funcin y establece su this en el thisArg proporcionado. Los argumentos se pueden pasar como un objeto Array.

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

Crea una nueva funcin que, cuando se llama, tiene su this configurado en el thisArg. Opcionalmente, una determinada secuencia de argumentos se antepondr a los argumentos siempre que se llame a la funcin recin invocada.

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

Llama a una funcin y establece su this en el valor proporcionado. Los argumentos se pueden pasar tal cual.

Function.prototype.toString()

Devuelve una cadena que representa el cdigo fuente de la funcin. Redefine el mtodo Object.prototype.toString().

Ejemplos

Diferencia entre el constructor Function y la declaracin function

Las funciones creadas con el constructor Function no crean cierres para sus contextos de creacin; siempre se crean en el mbito global. Al ejecutarlos, solo podrn acceder a sus propias variables locales y globales, no a las del mbito en el que se cre el constructor Function. Esto es diferente de usar eval con cdigo para una expresin de funcin.

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()); // 10
var f2 = createFunction2();
console.log(f2()); // 20

Si bien este cdigo funciona en los navegadores web, f1() producir un ReferenceError en Node.js, ya que no encontrar a x. Esto se debe a que el mbito de nivel superior en Node no es el mbito global, y x ser local para el mdulo.

Especificaciones

Specification
ECMAScript 2027 LanguageSpecification
# sec-function-objects

Compatibilidad con navegadores

Ve tambin


Web Proxy Viewer  |  New URL  |  Original Page