
Un objeto arguments en javascript es un objeto similar a una matriz que nos da acceso a los argumentos pasados a una función.
Características generales
Un objeto arguments
es una variable local que está disponible en todas las funciones (excepto en las funciones de flecha ), y puede hacer referencia a los argumentos pasados a la función dentro de él usando el objeto arguments
. Este objeto contiene todos los argumentos pasados a la función en el mismo orden en que se pasan a partir del índice 0. Por ejemplo, si pasa tres argumentos a una función, puede hacer referencia a ellos de la siguiente manera:
arguments[0] arguments[1] arguments[2]
También puede establecer el valor de los medios:
arguments[1] = 'new value';
Un objeto arguments
no es una matriz Array
, pero es similar a una matriz, es decir, no tiene ninguna propiedad Array
excepto length
. Es decir, no tiene la función pop
, pero se puede convertir en una matriz real:
var args = Array.prototype.slice.call(arguments); var args = [].slice.call(arguments); // ES2015 const args = Array.from(arguments);
Puede usar el objeto arguments
si llama a una función y le pasa más argumentos de los que se dice que acepta. Esta técnica es útil para funciones a las que se puede pasar un número diferente de argumentos. Puede usar la propiedad arguments.length
para averiguar el número de argumentos pasados a la función y luego procesar cada argumento al que se accede desde un objeto arguments
. Para saber cuántos argumentos acepta una función al declararla, use el Function.length
.
Estructura arguments en javascript
arguments
Uso del typeof
El parámetro devuelve el typeof
valor object
cuando se usa en el objeto en arguments
sí:
console.log(typeof arguments); // 'object'
El uso del parámetro typeof
en los argumentos devolverá el tipo de valor del argumento:
console.log(typeof arguments[0]);
Parámetro de propagación con el objeto arguments
También puede utilizar la función Array.from()
o el coeficiente de publicación (operador de propagación) para convertir el objeto arguments
en la matriz de hechos:
<var args = Array.from(arguments); var args = [...arguments];
arguments.callee
Indica la función que se está ejecutando actualmente.
arguments.caller
Indique qué función llamó a la función que se está ejecutando actualmente. Esta propiedad se omite y no es compatible con todos los navegadores por razones de seguridad.
arguments.length
Indica el número de argumentos pasados a la función.
Ejemplos y aplicaciones en código
Función para agregar más de una cadena
El siguiente ejemplo define una función que combina más de una cadena. El único argumento definido al declarar esta función es el separador que separa los elementos que se recopilarán en la cadena:
function myConcat(separator) { var args = Array.prototype.slice.call(arguments, 1); return args.join(separator); }
Puede pasar cualquier número de argumentos a esta función:
// "red, orange, blue" myConcat(', ', 'red', 'orange', 'blue'); // "elephant; giraffe; lion; cheetah" myConcat('; ', 'elephant', 'giraffe', 'lion', 'cheetah'); // "sage. basil. oregano. pepper. parsley" myConcat('. ', 'sage', 'basil', 'oregano', 'pepper', 'parsley');
Función para la creación de listas HTML
El siguiente ejemplo define una función que crea una cadena que contiene los elementos HTML necesarios para crear un menú. El único parámetro formal en esta función es una cadena valorada » u
» para crear una lista desordenada ( <ul>
) o » o
» para crear una lista vinculada ( <ol>
):
function list(type) { var result = '<' + type + 'l><li>'; var args = Array.prototype.slice.call(arguments, 1); result += args.join('</li><li>'); result += '</li></' + type + 'l>'; return result; }
Puede pasar cualquier número de argumentos a esta función:
var listHTML = list('u', 'One', 'Two', 'Three'); // "<ul><li>One</li><li>Two</li><li>Three</li></ul>"
Soporte de navegadores
Característica | Chrome | Firefox | IE | Opera | Safari |
---|---|---|---|---|---|
Soporte básico | sí | sí | sí | sí | sí |
- Múltiples Constantes en TypeScript
- Estructura de Datos las Colas
- Estructura de Datos las Pilas (Stack)
- Widget Drawer en Flutter
- Clase Scaffold en Flutter
- Estructura del lenguaje Python
- Iteradores y generadores en TypeScript
- Símbolo en TypeScript (Symbol)
- Tipos Avanzados en TypeScript
- Tipos de Compatibilidad en TypeScript
- Inferir Tipos en TypeScript
- Tipos Generalizados (Generics) en TypeScript
- Tipos Básicos de Datos en TypeScript
- Interfaces en TypeScript
- Declaración de Variables en TypeScript
- Funciones en TypeScript
- Categorías en TypeScript
- Introducción a TypeScript
- Clase MaterialApp en Flutter
- Clase Container en Flutter
- ¿Qué son los Widgets en Flutter?
- Introducción a la Arquitectura de Aplicaciones con Flutter
- Lista Doblemente Enlazada
- Listas Vinculadas en Estructura de Datos
- Introducción a las Matrices(Arrays)
- Estructuras de Datos en los Algoritmos de Programación
- Expresión const en JavaScript
- Expresión let en JavaScript
- Introducción al Lenguaje de Programación CSS
- Intérprete de Python
- Expresión var en JavaScript
- Expresión try…catch en JavaScript
- Expresión throw en JavaScript
- Continue en JavaScript
- Switch en JavaScript
- Expresiones if…else en JavaScript
- Declaración vacía o empty en JavaScript
- Break en JavaScript
- Sentencia block en JavaScript
- Arguments en JavaScript
- Promise en JavaScript
- Number en JavaScript