A veces, al encapsular un control, muchas funciones JS deben obtener los parámetros directos o los parámetros de objeto aprobados, por lo que debemos juzgar el primer objeto cada vez, por lo que para facilitar la encapsulación de una función aquí, podemos obtener los valores de los parámetros en la función actual:
/*------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------- GetArgs (diffcase) {// return el objeto de parámetro var resultado = nuevo objeto (); // Obtener la función de llamada var Caller = arguments.callee.caller; if (caller == null || caller.arguments.length == 0) return resultado; // Obtenga el conjunto de parámetros de la función var coincidentes = caller.toString (). Match (// s*función [/w/s]*/(([/w/s,]*)/)/); if (coincidentes == nulo) Resultado de retorno; var argArray = coincide [1] .split (","); // Obtener el objeto de parámetro var params = Caller.arguments [0]; Var index = typeof (params) == "objeto"? 1: 0; if (index == 1) {for (var p en params) {for (var i = 0; i <argArray.length; i ++) {var arg = argArray [i] .trim (); if (diffcase) {if (arg == p) {resultado [arg] = params [p]; romper; }} else {if (arg.tolocalElowerCase () == p.tolocalElowerCase ()) {resultado [arg] = params [p]; romper; }}}}} @ Resultado de retorno;}Ejemplo de llamada:
// Test Function Function Test (Name, Age) {// Obtener el objeto de parámetro var args = getArgs (); alerta ("nombre:" + args.name + ", edad:" + args.age);} // prueba de prueba de llamada ("zhang san", 25); Prueba ({nombre: "li si", edad: 30}); Prueba ({nombre: "Wang Wu"}, 18);