Às vezes, ao encapsular um controle, muitas funções JS precisam obter os parâmetros diretos ou parâmetros de objeto passados, por isso precisamos julgar o primeiro objeto todas as vezes; portanto, para facilitar o encapsulamento de uma função aqui, podemos obter os valores dos parâmetros na função atual:
/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- GetArgs (diffcase) {// retorna o objeto parâmetro var resultado = new Object (); // Obtenha a função de chamada var chamador = argumentos.callee.caller; if (chamador == null || caller.argudents.Length == 0) RECULTO DE RETURN; // Obtenha o conjunto de parâmetros da função var correspondente = call.ToString (). Match (// s*função [/w/s]*/(([/w/s,]*)/)/); if (matchs == NULL) RECULTO DE RECURTO; var argarray = corresponde [1] .split (","); // obtenha o objeto parâmetro var params = caller.arguments [0]; var index = typeof (params) == "objeto"? 1: 0; if (index == 1) {for (var p em params) {for (var i = 0; i <argarray.length; i ++) {var arg = argarray [i] .Trim (); if (diffcase) {if (arg == p) {resultado [arg] = params [p]; quebrar; }} else {if (arg.tolocalelowerCase () == p.tolocAlelowerCase ()) {resultado [arg] = params [p]; quebrar; }}}}}} // Múltiplos parâmetros substituem o parâmetro passado pelo objeto para (var i = index; i <argarray.length && i <calller.arguments.length; i ++) Result [argarray [i] .trim ()] = call.arguments [i]; resultado de retorno;}Ligue para o exemplo:
// Teste da função de teste Teste (nome, idade) {// obtenha objeto de parâmetro var ar args = getArgs (); alert ("Nome:" + args.name + ", idade:" + args.age);} // teste de teste de chamada ("zhang san", 25); Teste ({nome: "li si", idade: 30}); Teste ({nome: "Wang Wu"}, 18);