En el artículo anterior, discutimos los parámetros predeterminados en JavaScript. En este artículo, discutiremos el objeto de parámetros de argumentos de JavaScript.
¿Cómo hacemos diferentes procesos en función de los parámetros pasados en una función en el siguiente ejemplo?
La copia del código es la siguiente:
función addAll () {
// ¿Qué hacemos aquí?
}
// debería devolver 6
addall (1, 2, 3);
// debería devolver 10
addall (1, 2, 3, 4);
Afortunadamente, JavaScript tiene un objeto de argumentos que puede manejar las situaciones anteriores. El objeto de argumentos es un objeto de matriz. Si desea conocer los detalles del objeto de argumentos, haga clic aquí. Usamos el objeto de argumentos para cambiar el ejemplo anterior:
La copia del código es la siguiente:
función addAll () {
var sum = 0;
para (var i = 0; i <arguments.length; i ++) {
sum += argumentos [i];
}
suma de retorno;
}
// Devuelve 6
addall (1, 2, 3);
// Devuelve 10
addall (1, 2, 3, 4);
Hemos dicho anteriormente que el objeto de argumentos es un objeto de matriz de clase. Vamos a probarlo a continuación:
La copia del código es la siguiente:
función getName () {
console.log (array.isArray (argumentos));
}
// emitirá falso
GetName ("Benjamin");
Se pueden ver los resultados de las pruebas anteriores:
No es un objeto de matriz, entonces, ¿cuál es la diferencia entre él y un objeto de matriz? Haga clic aquí para obtener más detalles.
Ejecutar el siguiente ejemplo arrojará un error:
La copia del código es la siguiente:
función sortargs () {
// typeError type no abierto: Undefined no es una función
sorted = arguments.sort ()
regresar ordenado;
}
sortargs ();
Podemos convertir un objeto de matriz en un objeto de matriz como el siguiente:
La copia del código es la siguiente:
función sortargs () {
// Convertir el objeto de argumentos en una matriz real
var args = [] .slice.call (argumentos);
// ¡Ahora esto funcionará!
Ordenado = args.sort ()
regresar ordenado;
}
// saldrá [1, 2, 3]
console.log (sortargs (1,3,2));
Si cree que este artículo es útil para usted, espero transmitirlo a más personas necesitadas. Si hay algún artículo inapropiado, deje un mensaje para corregirlo.