国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Js 獲取當前函數參數對象的實現代碼

2019-11-20 09:39:11
字體:
來源:轉載
供稿:網友

有時候在封裝控件的時候在很多 Js 函數中需要獲取傳入的直接參數或者對象參數,那么我們就需要每次都去判斷第一個對象,所以為了方便在此封裝一個函數,來獲取當前函數中的參數值:

/*------------------------------------------ * 清除字符串兩端空格,包含換行符、制表符 *------------------------------------------*/String.prototype.Trim = function () { return this.replace(/(^[/s/n/t]+|[/s/n/t]+$)/g, ""); }/*---------------------------------------- * 獲取當前函數的參數對象 *---------------------------------------- * diffCase 是否區分大小寫,默認 false *----------------------------------------*/function GetArgs(diffCase) { //返回參數對象 var result = new Object(); //獲取調用函數 var caller = 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) return result; var argArray = matchs[1].split(","); //獲取參數對象 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];      break;     }    } else {     if (arg.toLocaleLowerCase() == p.toLocaleLowerCase()) {      result[arg] = params[p];      break;     }    }   }  } }    //多個參數將第一個后面的參數覆蓋對象傳入的參數 for (var i = index; i < argArray.length && i < caller.arguments.length; i++)  result[argArray[i].Trim()] = caller.arguments[i]; return result;}

調用示例:

//測試函數function Test(name, age) { //獲取參數對象 var args = GetArgs(); alert("姓名:" + args.name + ",年齡:" + args.age);}//調用測試Test("張三", 25);Test({ name: "李四", age: 30 });Test({ name: "王五" }, 18);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 治县。| 容城县| 延津县| 巫溪县| 利津县| 姜堰市| 临安市| 黑龙江省| 永安市| 怀集县| 陈巴尔虎旗| 库车县| 吉林市| 长宁区| 嘉兴市| 饶河县| 镇沅| 中阳县| 开原市| 连南| 东兴市| 长沙县| 康乐县| 闽侯县| 江达县| 峡江县| 富宁县| 新巴尔虎左旗| 深水埗区| 靖宇县| 久治县| 海门市| 石柱| 江孜县| 子长县| 潼关县| 崇文区| 安阳市| 腾冲县| 家居| 土默特左旗|