[JavaScript] Pasar todos los parámetros de un método al siguiente paso del método en detalle

Como en el título, cómo pasar todos los parámetros de un método de JavaScript al siguiente método, cómo realizar este paso, se puede usar cuando el código mueve ladrillos y es necesario reescribir el método, déjame contarte al respecto. aquí.

paso de parámetros

Tal vez escribas así, mira el siguiente código.

var _log = console.log;
console.log = function(a,b) {
    
    
	if(b) return _log(a,b);
	return _log(a);
};

Sin embargo, si encuentra una gran cantidad de parámetros de método, mire el siguiente código

var _log = console.log;
console.log = function(a,b,c,d,e,f,g...) {
    
    
	//省略更多....
	if(b && c) return _log(a,b,c);
	if(b) return _log(a,b);
	return _log(a);
};

¿Es necesario escribir muchas líneas? Si no es flexible, será muy agotador escribir así... Tengo un profundo conocimiento.

argumentos

Quizás, si has estado en contacto con él arguments, deberías pensar en utilizarlo para ver si se puede realizar.

  • argumentsEs la matriz de lista de parámetros, puede saber cuántos parámetros se pasan,
  • arguments.lengthIndica el número de parámetros pasados.

Mirando el siguiente código, sé que no es bueno usarlo argumentsasí, aunque ahorra if()juicios de escritura, todavía queda mucho por escribir.

var _log = console.log;
console.log = function() {
    
    
	switch(arguments.length){
    
    
		//省略更多....
		case 3:
			return _log(arguments[0],arguments[1],arguments[2]);
		case 2:
			return _log(arguments[0],arguments[1]);
		default:
			return _log(arguments[0]);
	}
};

método proxy

Escuché sobre proxy, así que pensé: ¿puede el método ser proxy? La respuesta es sí.

Mire un ejemplo, applyel uso del agente, el código es el siguiente

var _log = console.log;
console.log = function() {
    
    
	return _log.apply(this, arguments);
};

applySi el método no se utiliza correctamente 劫持, se producirán problemas de seguridad de los datos y será fácil de detectar. No se recomienda su uso.

Pasar parámetros directamente

Pase la lista de parámetros de un método al siguiente método, simplemente pase el parámetro directamente,

Mira un ejemplo, ...argsse refleja la utilidad de la función, el código es el siguiente

var _log = console.log;
console.log = function(...args) {
    
    
	return _log(...args);
};

...argsEs el operador de extensión; tenga en cuenta que este uso solo se admite en ECMAScript ES6 y superiores.

He visto esto pero no me gusta...
Por favor agregue una descripción de la imagen.

Supongo que te gusta

Origin blog.csdn.net/zs1028/article/details/132580714
Recomendado
Clasificación