Los argumentos objetan
En el código de función, se utilizan argumentos especiales de objetos, los desarrolladores pueden acceder a ellos sin señalar explícitamente los nombres de los parámetros.
Por ejemplo, en la función sayshi (), el primer parámetro es el mensaje. También se puede acceder a este valor con argumentos [0], es decir, el valor del primer parámetro (el primer parámetro está en la posición 0, el segundo parámetro está en la posición 1, y así sucesivamente).
Por lo tanto, puede anular la función sin nombrar explícitamente los parámetros:
función sayshi () {if (argumentos [0] == "adiós") {return;} alert (argumentos [0]);}Número de parámetros de detección
También puede usar el objeto de argumentos para detectar el número de parámetros de la función y consultar el atributo argumentos.length.
El siguiente código generará el número de parámetros utilizados para cada llamada a la función:
function HowManyArgs () {alert (argumentos.length);} HowManyargs ("String", 45); HowManyargs (); HowManyargs (12);El código anterior mostrará "2", "0" y "1" a su vez.
Nota: A diferencia de otros lenguajes de programación, ECMAScript no verifica que el número de parámetros pasados a una función sea igual al número de parámetros definidos por la función. Las funciones definidas por los desarrolladores pueden aceptar cualquier cantidad de parámetros (según la documentación de Netscape, hasta 255) sin arrojar ningún error. Cualquier parámetros faltantes se pasará a la función como indefinido, y las funciones redundantes serán ignoradas.
Simular la sobrecarga de funciones
Use el objeto Argumentos para determinar el número de parámetros pasados a la función y luego simular la sobrecarga de la función:
función doadd () {if (arguments.length == 1) {alerta (argumentos [0] + 5);} else if (arguments.length == 2) {alerta (argumentos [0] + argumentos [1]);}}doadd (10); // Salida "15"
Doadd (40, 20); // Salida "60"
Cuando solo hay un parámetro, la función doadd () agrega 5 al parámetro. Si hay dos parámetros, se agregan los dos parámetros para devolver su suma. Entonces, Doadd (10) sale "15", mientras que Doadd (40, 20) sale "60".
Aunque no es tan bueno como la sobrecarga, es suficiente para evitar esta limitación de ECMAScript.