1. ¿Qué son los argumentos?
Los argumentos son un objeto incorporado en JavaScript. Todas las bibliotecas de funciones JS principales utilizan objetos de argumentos. Por lo tanto, el objeto Agruments es necesario para que los programadores de JavaScript estén familiarizados.
Todas las funciones tienen su propio objeto de argumentos, que incluye los parámetros que deben llamar la función. No es una matriz, si se usan los tipos de argumentos, la devolución es 'objeto'. Aunque podemos llamar a los argumentos llamando a datos. Por ejemplo, longitud e método de índice. Pero los objetos de empuje y POP de las matrices no son aplicables.
2. Cree una función flexible
Parece que el objeto de argumento está muy limitado al uso, pero de hecho es un objeto muy útil. Puede usar el objeto de argumento para habilitar la función para llamar a un número indefinido de parámetros. Hay una función formateada en la biblioteca Base2 de Dean Edwards que demuestra esta flexibilidad.
Copie el código de la siguiente manera: Formateo de funciones (String) {
var args = argumentos;
Var Pattern = new Regexp ("%([1-" + argumentos.length + "])", "g");
return string (string) .replace (patrón, función (coincidencia, índice) {
return args [índice];
});
};
Proporcionamos una cadena de plantilla en la que puede agregar un marcador de posición al valor de devolución usando "%1" a "%9". Luego proporcione otros nueve parámetros para insertar.
La copia del código es la siguiente: formato ("y el %1 quiere saber de quién es %2 usted %3 ″," papeles "," camisa "," desgaste ");
El código anterior volverá: y los periódicos quieren saber qué camisa usa ".
Hay algo a lo que debemos prestar atención. JavaScript nos permite pasar cualquier número de parámetros en una función, sin importar cómo definamos esta función. Argumentos Los objetos están permitidos para estos.
3. Convierta el objeto de argumentos en una matriz real
Aunque el objeto argumentos no es una verdadera matriz de JavaScript, aún podemos convertirlo fácilmente en datos estándar y luego realizar operaciones de matriz.
La copia del código es la siguiente: var args = array.prototype.slice.call (argumentos);
Ahora esta variable Args contiene un objeto de matriz de JavaScript estándar que contiene todos los parámetros de la función.
4. Crear funciones a través de objetos de argumentos preestablecidos
El objeto Argumentos nos permite ejecutar todos los tipos de métodos JavaScript. Aquí hay una definición de función MakeFunc. Esta función nos permite proporcionar una referencia de función y todos los parámetros de esta función. Devolverá una función anónima para llamar a la función que especificó, y también proporcionará los parámetros adjuntos a la llamada de función anónima.
Copie el código de la siguiente manera: function MakeFunc () {
var args = array.prototype.slice.call (argumentos);
var func = args.shift ();
Función de retorno () {
return FUnc.Apply (nulo, args.concat (array.prototype.slice.call (argumentos)));
};
}
El primer objeto de argumento proporciona MakeFunc con una referencia a la función que desea llamar. Lo quitó de la matriz de argumentos. Luego, MakeFunc devuelve una función anónima para ejecutar el método especificado.
El argumento de la primera aplicación apunta al alcance de la llamada de función, señalado principalmente por las partes clave de la función. Mantengamos esto como nulo primero. El segundo argumento es una matriz que se convertirá en un objeto de argumento para esta función. Makefunc concatena los valores de matriz originales en el objeto de argumentos y la matriz de las funciones llamadas.
Debe emitir una plantilla que siempre sea la misma posición para que no siempre llame a la función de formato cada vez que se refiere a la plantilla. Puede usar la función general de MakeFunc para devolver las funciones que pueden llamar al formato y complementar automáticamente la plantilla.
La copia del código es la siguiente: var majortom = makefunc (formato, "Este es el mayor control de tierra. Soy %1.");
Puede llamar a la función majortom así:
La copia del código es la siguiente: Majortom ("atravesar la puerta");
Majortom ("flotando de una manera más peculiar");
Cada vez que llame a Majortom, llamará a la función de formato y al primer argumento al mismo tiempo, y a la plantilla ya escrita. Entonces volverá
Copie el código de la siguiente manera: "Este es un gran Tom para el control del suelo. Estoy atravesando la puerta".
"Este es un gran Tom para el control de tierra.
5. Cree una función que se haga referencia a sí misma
Puede pensar que esto es genial, pero hay más sorpresas para los argumentos. Tiene otras características útiles: el método Callee. Argumentos.callee incluye una referencia a una función para crear un objeto de argumento. Entonces, ¿cómo usarlo?
El método Arguments.callee permite que una función anónima se indique muy convenientemente.
Repetir es una función que lleva una referencia de función y dos números. El primer número es cuántas veces se llama la función, y el segundo número es el intervalo entre cada llamada, en milisegundos.
La copia del código es la siguiente: Función Repetir (Fn, Times, Delay) {
Función de retorno () {
if (Times> 0) {
fn.apply (nulo, argumentos);
var args = array.prototype.slice.call (argumentos);
var self = argumentos.callee;
setTimeOut (function () {self.apply (null, args)}, retraso);
}
};
}
La función de repetición utiliza el método argumentos. Callee para obtener una referencia del yo variable para apuntar a la función que ejecutó la instrucción original. De esta manera, la función anónima se puede llamar nuevamente.
Tengo una función súper breve que aloja una cadena y ejecuta un método de alerta.
Copie el código de la siguiente manera: Function Comms (s) {
alerta (s);
}
Sin embargo, quiero crear una versión especial a través de la cual pueda repetir esta acción tres veces, cada intervalo de tiempo de 2 segundos. Entonces, podemos
La copia del código es la siguiente: var algowrong = repetición (comunicaciones, 3, 2000);
Somethingwrong ("¿Puedes oírme, Mayor Tom?");
El resultado de llamar a la función Somethingwrong es repetir esta acción tres veces, con cada intervalo de alerta de 2 segundos.
Aunque los argumentos no se usan con frecuencia y son un poco raros, están llenos de sorpresas y vale la pena aprender.