Kadang -kadang ketika merangkum kontrol, banyak fungsi JS perlu mendapatkan parameter langsung yang dilewati atau parameter objek, jadi kita perlu menilai objek pertama setiap kali, jadi untuk memfasilitasi enkapsulasi fungsi di sini, kita dapat memperoleh nilai parameter dalam fungsi saat ini:
/*----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- GetArgs (diffcase) {// kembalikan objek parameter var result = objek baru (); // Dapatkan fungsi panggilan var caller = arguments.callee.caller; if (caller == null || caller.arguments.length == 0) hasil pengembalian; // Dapatkan set parameter dari fungsi var matchs = caller.toString (). Match (// s*function [/w/s]*/(([/w/s,]*)/)/); if (cocok == null) hasil pengembalian; var argarray = cocok [1] .split (","); // Dapatkan objek parameter var params = caller.arguments [0]; var index = typeof (params) == "objek"? 1: 0; if (index == 1) {for (var p di params) {for (var i = 0; i <argarray.length; i ++) {var arg = argarray [i] .trim (); if (diffcase) {if (arg == p) {hasil [arg] = params [p]; merusak; }} else {if (arg.tolocalelowercase () == p.tolocalelowercase ()) {hasil [arg] = params [p]; merusak; }}}}}} // Beberapa parameter menimpa parameter yang dilewati oleh objek untuk (var i = indeks; i <argarray.length && i <caller.arguments.length; i ++) hasil [argarray [i] .trim ()] = caller.arguments [i]; Hasil pengembalian;}Contoh panggilan:
// uji fungsi fungsi tes (nama, usia) {// Dapatkan objek parameter var args = getArgs (); alert ("name:" + args.name + ", usia:" + args.age);} // Call Test Test ("Zhang San", 25); Test ({name: "Li si", usia: 30}); Test ({name: "wang wu"}, 18);