En JavaScript, la función de la función es un objeto.
No hay sobrecarga de métodos en JS
En JavaScript, no hay concepto de sobrecarga del método (función).
ejemplo:
La copia del código es la siguiente:
<html>
<Evista>
<script type = "text/javaScript">
función add (número)
{
alerta (número + 20);
}
función add (número, número1)
{
alerta (número + 30);
}
agregar (10);
</script>
</ablo>
<Body>
</body>
</html>
La caja de balas en la página web muestra 40.
Explicación Aunque el segundo método son dos parámetros, todavía se llama.
Después de intercambiar el orden de los dos métodos, el cuadro emergente muestra 30. Se puede ver que, independientemente del número de parámetros, se llama el siguiente método con el mismo nombre.
¿Cómo explicar este fenómeno?
Esto se debe a que la declaración de función en realidad crea un objeto:
La copia del código es la siguiente:
<html>
<Evista>
<script type = "text/javaScript">
función add (número)
{
alerta (número + 20);
}
/*
La función anterior es equivalente a:
var add = función (número)
{
alerta (número + 20);
}
*/
función add (número, número1)
{
alerta (número + 30);
}
/*
La función anterior es equivalente a:
var add = function (número, número1)
{
alerta (número + 30);
}
*/
agregar (10);
</script>
</ablo>
<Body>
</body>
</html>
De esta manera, Agregar realmente apunta al objeto posterior, y los parámetros asignados cuando se llama el método se asignarán al método de parámetros formales en orden, y los parámetros que no se asignan después no están definidos.
Al llamar a las funciones de JavaScript, no hay una verificación estricta del número de parámetros. Está bien tener el número real de parámetros más pequeños que el número de parámetros formales. Los parámetros formales que no están asignados son valores indefinidos.
También es posible que el número de parámetros reales sea mayor que el número de parámetros formales. De esta manera, solo se utilizarán los parámetros reales anteriores y no se utilizarán los parámetros reales adicionales.
Objeto de función
Hay un objeto de función en JavaScript, y todas las funciones personalizadas son de tipo de objeto de función.
Todos los parámetros recibidos por el objeto de función son de tipo de cadena, el último parámetro es el cuerpo de la función que se ejecutará, y el parámetro anterior son los parámetros que la función realmente necesita recibir.
ejemplo:
La copia del código es la siguiente:
<html>
<Evista>
<script type = "text/javaScript">
var add = nueva función ("número", "número1", "alerta (número + número1);");
var add = nueva función ("número", "alerta (número + 20);");
agregar (10, 30);
</script>
</ablo>
<Body>
</body>
</html>
Argumentos de objetos implícitos
En JavaScript, cada función tiene argumentos de objetos implícitos, que representan los parámetros realmente pasados a la función.
Los argumentos no tienen nada que ver con los parámetros formales de la función y su número.
Los argumentos tienen una longitud de atributo útil, que indica la longitud del parámetro real. Puede usar esto para simular la sobrecarga de la función:
Ejemplos de ejercicio:
La copia del código es la siguiente:
<html>
<Evista>
<script type = "text/javaScript">
función add (número1, número2)
{
alerta (argumentos.length);
alerta (argumentos [0]);
alerta (argumentos [1]);
alerta (argumentos [2]);
}
// agregar (2, 3, 4);
función add2 ()
{
if (1 == argumentos.length)
{
alerta (argumentos [0]);
}
más if (2 == argumentos.length)
{
alerta (argumentos [0] + argumentos [1]);
}
else if (3 == argumentos.length)
{
alerta (argumentos [0] + argumentos [1] + argumentos [2]);
}
}
add2 (3);
add2 (3, 4);
ADD2 (3, 4, 5);
</script>
</ablo>
<Body>
</body>
</html>
Cada objeto de función tiene un atributo de longitud, lo que indica el formato de parámetro que la función espera recibir.
Es diferente de los argumentos de la función. argumentos.length representa el número de parámetros realmente recibidos por la función.
ejemplo:
La copia del código es la siguiente:
<html>
<Evista>
<script type = "text/javaScript">
var add = function (num, num2, num3)
{
alerta (num + num2 + num3);
}
alerta (add.length); // Salida 3
agregar (1, 2, 3);
var add2 = function ()
{
}
alerta (add2.length); // Salida 0
</script>
</ablo>
<Body>
</body>
</html>