때로는 컨트롤을 캡슐화 할 때 많은 JS 기능이 전달 된 직접 매개 변수 또는 객체 매개 변수를 얻어야하므로 매번 첫 번째 객체를 판단해야하므로 여기서 기능의 캡슐화를 용이하게하려면 현재 함수에서 매개 변수 값을 얻을 수 있습니다.
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- getArgs (diffcase) {// 매개 변수 개체 var renate = new Object (); // 호출 함수 가져 오기 var accer = arguments.callee.caller; if (caller == null || caller.arguments.length == 0) return result; // 함수의 매개 변수 세트를 가져옵니다. var matchs = caller.toString (). match (// s*function [/w/s]*/([/w/s,]*)/); if (matchs == null) 반환 결과; var argarray = 일치 [1] .split ( ","); // 매개 변수 객체 var var params = caller.arguments [0]; var index = typeof (params) == "object"? 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 ++) 결과 [argarray [i] .trim ()] = caller.arguments [i]; 반환 결과;}Call example:
// 테스트 함수 기능 테스트 (이름, 나이) {// 매개 변수 객체 var args = getargs (); ALERT ( "이름 :" + args.name + ", age :" + args.age);} // 호출 테스트 테스트 ( "Zhang San", 25); 테스트 ({이름 : "li si", 나이 : 30}); 테스트 ({이름 : "Wang Wu"}, 18);