Parfois, lorsque vous encapsulant un contrôle, de nombreuses fonctions JS doivent obtenir les paramètres directs passés ou paramètres d'objet, nous devons donc juger le premier objet à chaque fois, donc afin de faciliter l'encapsulation d'une fonction ici, nous pouvons obtenir les valeurs des paramètres dans la fonction actuelle:
/ * --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Getargs (diffcase) {// renvoie le paramètre objet var result = new Object (); // Obtenez la fonction d'appel var appelant = arguments.callee.Caller; if (caller == null || caller.arguments.length == 0) Retour Résultat; // Obtenez l'ensemble de paramètres de la fonction var correspond = caller.toString (). Match (// s * function [/ w / s] * / (([/ w / s,] *) /) /); if (correspond == null) Retour Résultat; var argarray = correspond [1] .split (","); // Obtenez l'objet de paramètre var params = caller.arguments [0]; var index = typeof (params) == "objet"? 1: 0; if (index == 1) {for (var p dans params) {for (var i = 0; i <argarray.length; i ++) {var arg = argarray [i] .trim (); if (diffcase) {if (arg == p) {result [arg] = params [p]; casser; }} else {if (arg.tolocalelowercase () == p.tolocalelowercase ()) {result [arg] = params [p]; casser; }}}}}} // Paramètres multiples écraser le paramètre transmis par l'objet pour (var i = index; i <argarray.length && i <caller.arguments.length; i ++) result [argarray [i] .trim ()] = caller.argments [i]; Retour Résultat;}Exemple d'appel:
// Test Fonction Fonction Test (nom, âge) {// Get Paramet Object var args = getargs (); alert ("name:" + args.name + ", âge:" + args.age);} // test d'appel ("Zhang San", 25); Test ({name: "li si", âge: 30}); Test ({name: "wang wu"}, 18);