Иногда при инкапсулировании управления многим функциям JS необходимо получить переданные прямые параметры или параметры объекта, поэтому нам нужно каждый раз судить о первом объекте, поэтому, чтобы облегчить инкапсуляцию функции здесь, мы можем получить значения параметров в текущей функции:
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. Getargs (diffcase) {// вернуть объект параметра var result = new object (); // Получить функцию вызова var caller = arguments.callee.caller; if (caller == null || caller.arguments.length == 0) вернуть результат; // Получить набор параметров функции var matchs = caller.tostring (). Match (// s*function [/w/s]*/(([/w/s,]*)/)/); if (Matchs == null) возврат результат; var argarray = совпадает [1] .split (","); // Получить объект параметра var params = caller.arguments [0]; var index = typeof (params) == "объект"? 1: 0; if (index == 1) {for (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]; перерыв; }} else {if (arg.tolocaleLowerCase () == p.tolocaleLowerCase ()) {result [arg] = params [p]; перерыв; }}}}}} // Несколько параметров перезаписывают параметр, переданный объектом для (var i = index; i <argarray.length && i <caller.arguments.length; i ++) result [argarray [i] .trim ()] = caller.arguments [i]; вернуть результат;}Пример звонка:
// тест функции тестовой функции (имя, возраст) {// Получить объект параметра var args = getargs (); Alert ("name:" + args.name + ", возраст:" + args.age);} // call -тест ("Zhang San", 25); Тест ({name: "li si", возраст: 30}); Тест ({name: "wang wu"}, 18);