Manchmal müssen viele JS -Funktionen bei der Einkapselung eines Steuerelements die übergebenen direkten Parameter oder Objektparameter abrufen. Daher müssen wir das erste Objekt jedes Mal beurteilen. Um hier die Kapselung einer Funktion zu erleichtern, können wir die Parameterwerte in der aktuellen Funktion erhalten:
/*----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Getargs (diffcase) {// return das Parameter -Objekt var result = new Object (); // die Anruffunktion abrufen var Caller = argumente.callee.caller; if (caller == null || caller.arguments.length == 0) Rückgabeergebnis; // den Parametersatz der Funktion var übereinstimmt = caller.toString (). Übereinstimmung (// s*Funktion [/w/s]*/(([/w/s,]*)/)/); if (Matchs == null) Rückgabeergebnis; var argarray = Matchs [1] .Split (","); // das Parameterobjekt var params = caller.argumente [0] abrufen; var index = typeof (params) == "Objekt"? 1: 0; if (index == 1) {für (var p in params) {for (var i = 0; i <argArray.length; i ++) {var arg = argArray [i] .trim (); if (diffcase) {if (arg == p) {result [arg] = params [p]; brechen; }} else {if (arg.tolocalelowerCase () == p.tolocalelowerCase ()) {result [arg] = params [p]; brechen; }}}}}} // Mehrere Parameter überschreiben den von dem Objekt für (var i = index; i <argarray.length && i <caller.arguments.length; i ++) Ergebnis [argArray [i] .Trim ()] = Caller.Argumente [i]; Rückgabeergebnis;}Aufrufen Beispiel:
// Testfunktionstest (Name, Alter) {// Parameterobjekt var args = getargs (); alert ("name:" + args.name + ", Alter:" + args.age);} // Aufrufen von Test -Test ("Zhang San", 25); Test ({name: "li si", Alter: 30}); Test ({name: "wang wu"}, 18);