Una función es un bloque de código reutilizable que es impulsado por un evento o ejecutado cuando se llama.
JScript admite dos funciones: una es una función dentro del lenguaje (como eval ()), y la otra es creada por sí misma.
Una variable declarada dentro de una función JavaScript (usando VAR) es una variable local, por lo que solo se puede acceder dentro de la función. (El alcance de esta variable es local).
Puede usar variables locales con el mismo nombre en diferentes funciones, porque solo las funciones que han declarado la variable se pueden reconocer.
Cómo llamar a una función
1. Llamada normal: FunctionName (Parámetro real ...)
2. Llame a través de variables que apuntan a la función:
var myVar = nombre de función;
myvar (parámetros reales ...);
Devuelve la función
1. Cuando la función no tiene un valor de retorno explícito, el valor devuelto está "indefinido".
2. Cuando la función tiene un valor de retorno, devuelve el valor de retorno.
Podemos devolver la función al lugar donde se llama utilizando la declaración de retorno.
Al usar la instrucción de retorno, la función detiene la ejecución y devuelve el valor especificado.
Una función generalmente devuelve un valor único, por lo que este valor también puede ser otra función:
La copia del código es la siguiente:
<script type = "text/javaScript">
var box = function () {
var a = 1;
Función de retorno () {
alerta (a ++)
}
}
alert (box ()); // "function () {alerta (a ++)}" aparece
</script>
Aquí solo asignamos el valor de retorno a una variable, y luego podemos llamarlo como usar una función normal:
La copia del código es la siguiente:
<script type = "text/javaScript">
var box = function () {
var a = 1;
Función de retorno () {
alerta (++ a)
}
}
var newfunc = box ();
newfunc (); // 2
</script>
Si desea que la función devuelta se ejecute de inmediato, también puede usar box () () para ejecutar este código.
Todas las funciones de ECMAScript se pasan por valores, lo que significa que los parámetros no se pasarán por referencia.
PS: Si hay una aprobación de aprobación, la variable en la función será una variable global y también se puede acceder a externamente.
(1) Tipos de valor: numéricos, booleanos, nulos, indefinidos.
(2) Tipo de referencia: objeto, matriz, función.
Valor de tipo de referencia: se refiere a aquellos objetos almacenados en la memoria del montón, lo que significa que la variable es en realidad solo un puntero, que ejecuta otra ubicación en la memoria, y el objeto se guarda por esa ubicación;
Crear funciones anónimas
La copia del código es la siguiente:
función(){
regresar 'Lee'; // Las funciones anónimas individuales no se pueden ejecutar, e incluso si se pueden ejecutar, no se pueden llamar porque no hay nombre
}
Hay muchos usos de esta función anónima en jQuery. Declare una función anónima directamente y úsela de inmediato. La ventaja de usar funciones anónimas es que pueden evitar definir una función que no se usa una vez, y está libre del problema de nombrar conflictos. No hay concepto de espacio de nombres en JS, por lo que es fácil tener conflictos de nombre de función. Una vez que se realiza el conflicto de nombres, el último declarado prevalecerá.
Ejecutar funciones anónimas por autoexecución:
La copia del código es la siguiente:
// ejecutar funciones anónimas a través de la autoexecución
<script type = "text/javaScript">
(function () {// (función anónima) (); coloque la función anónima en los primeros paréntesis y ejecute en los segundos paréntesis.
alerta ('Lee');
}) ();
</script>
Asigne el valor de retorno de la función anónima a la variable:
La copia del código es la siguiente:
// Asignar el valor de retorno de la función anónima autoexecutada a la variable
<script type = "text/javaScript">
var box = (function () {
alerta ('Lee');
}) (); // Popt "Lee";
alerta (caja); // aparece indefinido. Si se escribe alerta (box ()), entonces solo aparece un "Lee"
</script>
Pasando los parámetros para las funciones anónimas de autoexecución:
La copia del código es la siguiente:
// autoexcripción la transferencia de parámetros de funciones anónimas
<script type = "text/javaScript">
(función (edad) {
alerta (edad);
}) (100); // Popt 100
</script>
JavaScript crea funciones dinámicas:
JavaScript admite la creación de funciones dinámicas. Las funciones dinámicas deben definirse mediante objetos de función (la función es un objeto en JavaScript, que se fija y no cambia. Estipula que la "f" del objeto de función debe ser capitalizado. Cuando se trata de una función, sabemos que es una palabra clave utilizada al definir la función de la función (x, y), cuando está en función (cuando se capitaliza), sabemos que es un objeto en JavaScrito de la función (x, y), cuando está capitalizado), sabemos que es un objeto en JavaScrito (Función (X, Y), cuando está en la función F (cuando se capitaliza), sabemos que es un objeto en JavaScrito (Función FunName (X, Y), cuando está en funciones (cuando F está capitalizado), sabemos que es un objeto en JAVAscript.
El formato básico para crear funciones dinámicas: var variable name = nueva función ("parámetro 1", "parámetro 2", "parámetro n", "declaración de ejecución");
Mira el siguiente código:
La copia del código es la siguiente:
<script type = "text/javaScript">
var cuadrado = nueva función ("x", "y", "var suma; sum = x+y; suma de retorno;");
El resultado de la alerta ("cuadrado (2,3) es:"+cuadrado (2,3)); // El resultado del cuadrado (2,3) es: 5
</script>
Square es una función creada dinámicamente. Cada parte del contenido en los soportes después del objeto de función debe estar en forma de cadena, es decir, debe estar encerrada en cotizaciones ("" o '')
Este código:
var cuadrado = nueva función ("x", "y", "var suma; sum = x+y; suma de retorno;");
Y el siguiente código:
La copia del código es la siguiente:
función cuadrada (x, y) {
var suma;
suma = x+y;
suma de retorno;
}
Es exactamente lo mismo, excepto que uno es una función dinámica y la otra es una función estática.
¿Por qué dividimos el código en pequeñas piezas de código? La ventaja de dividir una cadena en varias cadenas independientes es que podemos cambiar la función de la función en cualquier momento modificando algunas de las cadenas.
Función de devolución de llamada
Una devolución de llamada es el proceso de llamada de una función. Luego comience comprendiendo este proceso de llamada. La función A tiene un parámetro, que es una función b. Cuando la función A se ejecuta, la función B se ejecuta. Entonces este proceso se llama devolución de llamada.
De hecho, el chino también es fácil de entender: devoluciones de llamada, devoluciones de llamada, que significa llamadas de retroceso. Después de finalizar la función A, llame a la función B más tarde.
Debe estar claro aquí: la función B se pasa a la función A en forma de parámetro, por lo que la función B se denomina función de devolución de llamada.
La mayoría de las funciones de efecto en jQuery implican funciones de devolución de llamada. Función de efecto jQuery
Por ejemplo:
La copia del código es la siguiente:
<script type = "text/javaScript">
$ ("div"). show (1000, function () {
// función de devolución de llamada
});
</script>
Aquí, la función de devolución de llamada se puede reemplazar con una instancia:
La copia del código es la siguiente:
<script type = "text/javaScript">
$ ("div"). show (1000, function () {
console.log ("Hola mundo")
});
</script>
La devolución de llamada es en realidad, cuando se ejecuta una función, la función que ahora se ejecuta es la llamada función de devolución de llamada. ¿Qué tal? Es fácil de entender ...
La diferencia entre métodos y funciones
La copia del código es la siguiente:
var arr = [1,2,3,4,5]
var a = 12; // variable: gratis
arr.a = 5; // atributo: pertenece a un objeto
función show () // función: gratis
{
alerta ('a');
}
arr.fn = function () // método: pertenece a un objeto
{
alerta ('b');
}
De hecho, un método es una función, pero un método tiene un objeto al que pertenece.
Como sabemos, las funciones vinculantes para hacer clic en los eventos
gramática:
$ (Selector). Haga clic (función)
Descripción del parámetro
La función es opcional. Especifica la función que se ejecuta cuando ocurre el evento de clic.
Esta forma a menudo se ve en jQuery. Utiliza la función como parámetro para agregar un controlador de eventos al método.
JS Función global
Las funciones globales no son un concepto con propiedades o métodos de objetos incorporados. La función global no pertenece a ningún objeto incorporado.
JavaScript contiene las siguientes 7 funciones globales para completar algunas funciones de uso común:
Escape (), eval (), isfinite (), isnan (), parsefloat (),
parseInt (), unescape ().
Varias funciones de funciones
Usar como constructor de clase
La copia del código es la siguiente:
clase class () {}
class.prototype = {};
var item = new class ();
Utilizado como cierre
La copia del código es la siguiente:
(función(){
// alcance independiente
}) ();
Llamado como constructor
El llamado constructor es generar un nuevo objeto a través de esta función.
La copia del código es la siguiente:
<script type = "text/javaScript">
función test () {
this.x = 10;
}
var obj = nuevo test ();
alerta (obj.x); // Pop 10;
</script>
El nuevo operador se puede usar para combinar constructores predefinidos como Object (), Date () y Function () para crear e inicializar objetos. La programación orientada a objetos es una característica poderosa de su capacidad para definir constructores personalizados para crear objetos personalizados utilizados en scripts. Se crea un constructor personalizado para que se puedan crear objetos con propiedades definidas. A continuación se muestra un ejemplo de una función personalizada (tenga en cuenta el uso de esta palabra clave).
La copia del código es la siguiente:
function circle (xpoint, ypoint, radio) {
this.x = xPoint; // x coordenada del centro del círculo.
this.y = ypoint; // La coordenada y del centro del círculo.
this.r = radio; // El radio del círculo.
}
Al llamar al constructor del círculo, se dan el valor del punto central y el radio del círculo (se requieren todos estos elementos para definir completamente un objeto circular único). Al final, el objeto círculo contiene tres propiedades. Aquí se explica cómo ilustrar un objeto circular.
var acircle = nuevo círculo (5, 11, 99);
La ventaja de usar una función de constructor es que puede recibir algunos parámetros al crear un objeto.
La copia del código es la siguiente:
<script type = "text/javaScript">
prueba de función (nombre) {
this.occupation = "Coder";
this.name = name;
this.whoareyou = function () {
return "I'm" + this.name + "y soy un" + this.compation;
}
}
var obj = new test ('trigkit4'); // crear diferentes objetos usando el mismo constructor
var obj2 = nueva prueba ('estudiante');
obj.whoareyou (); // "Soy Trigger4 y soy un rincón"
obj2.whoareyou (); // "Soy estudiante y soy un rincón"
</script>
Por convención, debemos capitalizar la primera letra de la función del constructor para distinguirla significativamente de la función general.
Las siguientes dos formas de definición de funciones son equivalentes.
La copia del código es la siguiente:
<script type = "text/javaScript">
var test = function () {
alerta ("hola mundo");
}
alerta (typeof (test)); // Función de salida
</script>
Aquí hay una prueba variable, cuyo valor inicial se asigna a una entidad de función
La copia del código es la siguiente:
<script type = "text/javaScript">
función test () {
alerta ("hola mundo");
}
alerta (typeof (test)); // Función de salida
</script>
Eche un vistazo al siguiente formulario de función de definición:
La copia del código es la siguiente:
<script type = "text/javaScript">
función test () {
alerta ("hola mundo");
};
test (); // realmente sale hola, ¿no?
función test () {
alerta ("hola");
};
test (); // Solo, Hello se emite
</script>
Obviamente, la primera función no funcionó, ¿no? Sabemos que el motor de análisis de JavaScript no ejecuta el código en línea por línea, sino que ejecuta el código pieza por pieza. En el análisis y ejecución del mismo programa, las declaraciones de función de la fórmula de definición se ejecutarán primero, por lo que la primera lógica de código definida ha sido sobrescribida por la segunda, por lo que la misma función solo se ejecutará dos veces.
Funcionar como valor
Las funciones no son solo una sintaxis, sino también un valor en JS. Es decir, la función se puede asignar a una variable, almacenarse en el atributo de un objeto o un elemento de una matriz, y pasar a otra función como parámetro.
El nombre de una función es realmente invisible, es solo el nombre de una variable, que se refiere al objeto de la función
La copia del código es la siguiente:
<script type = "text/javaScript">
función cuadrada (x, y) {
regresar x*y;
}
var s = cuadrado; // S y Square se refieren a la misma función
cuadrado (2,3); // 6
S (2,4); // 8
</script>
Además de asignar funciones a las variables, las funciones también se pueden asignar a los atributos de los objetos. Cuando se llama una función como atributo de un objeto, la función se llama método.
La copia del código es la siguiente:
<script type = "text/javaScript">
var obj = {cuadrado: function (x, y) {// El objeto se mide directamente
regresar x*y;
}};
var ect = obj.square (2,3);
</script>
atributo prototipo
Cada función contiene un atributo prototipo, que apunta a una referencia a un objeto, que se llama objeto prototipo.
Ver: JavaScript Learning Notes (V) Prototipo y cadena de prototipo
Funciones avanzadas
La función de orden superior aquí no es la función de orden superior en el número alto. La llamada función de orden superior es una función que opera la función. Recibe una o más funciones como parámetros y devuelve una nueva función.