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

Function.prototype.arguments - 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.prototype.arguments

Deprecated

Avoid using this feature in new projects. JavaScript strict mode prohibits accessing the caller and arguments properties of a Function object. This feature may be a candidate for removal from web standards or browsers.

No estndar: Esta funcin no est estandarizada. No recomendamos usar funciones no estndar en produccin, ya que tienen un soporte limitado en los navegadores y pueden cambiar o eliminarse. Sin embargo, pueden ser una alternativa adecuada en casos especficos donde no exista una opcin estndar.

Nota: La propiedad arguments de los objetos Function est en desuso. La forma recomendada de acceder al objeto arguments es hacer referencia a la variable arguments disponible dentro de las funciones.

La propiedad de acceso arguments de instancias de Function devuelve los argumentos pasados a esta funcin. Para las funciones strict, flecha , asncronas y generadoras, acceder a la propiedad arguments arroja un TypeError.

In this article

Descripcin

El valor de arguments es un objeto similar a un arreglo correspondiente a los argumentos pasados a una funcin.

En el caso de recursividad, es decir, si la funcin f aparece varias veces en la pila de llamadas, el valor de f.arguments representa los argumentos correspondientes a la invocacin ms reciente de la funcin.

El valor de la propiedad arguments normalmente es null si no hay una invocacin pendiente de la funcin en progreso (es decir, la funcin ha sido llamada pero an no ha devuelto).

Tenga en cuenta que el nico comportamiento especificado por la especificacin ECMAScript es que Function.prototype tiene un descriptor de acceso inicial arguments que arroja incondicionalmente un TypeError para cualquier solicitud get o set (conocida como "poison pill accessor" -accesor de pldora envenenada-), y que las implementaciones no pueden cambiar esta semntica para ninguna funcin, excepto funciones simples no estrictas. El comportamiento real de la propiedad arguments, si es algo ms que arrojar un error, es definido en la implementacin Por ejemplo, Chrome lo define como una propiedad de datos propia, mientras que Firefox y Safari extienden el descriptor de acceso inicial Function.prototype.arguments de la pldora venenosa para manejar especialmente los valores this que son funciones no estrictas.

js
(function f() {
  if (Object.hasOwn(f, "arguments")) {
    console.log(
      "arguments es una propiedad propia con descriptor",
      Object.getOwnPropertyDescriptor(f, "arguments"),
    );
  } else {
    console.log(
      "f no tiene una propiedad propia llamada argumentos. Tratando de obtener f.[[Prototype]].arguments",
    );
    console.log(
      Object.getOwnPropertyDescriptor(
        Object.getPrototypeOf(f),
        "arguments",
      ).get.call(f),
    );
  }
})();

// En Chrome:
// arguments es una propiedad propia con descriptor {value: Arguments(0), writable: false, enumerable: false, configurable: false}

// En Firefox:
// f no tiene una propiedad propia llamada argumentos. Tratando de obtener f.[[Prototype]].arguments
// Arguments {  }

Ejemplos

Usando la propiedad arguments

js
function f(n) {
  g(n - 1);
}

function g(n) {
  console.log(`antes: ${g.arguments[0]}`);
  if (n > 0) {
    f(n);
  }
  console.log(`despus: ${g.arguments[0]}`);
}

f(2);

console.log(`devuelto: ${g.arguments}`);

// Logs:
// antes: 1
// antes: 0
// despus: 0
// despus: 1
// devuelto: null

Especificaciones

Not part of any standard.

Compatibilidad con navegadores

Vase tambin


Web Proxy Viewer  |  New URL  |  Original Page