最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Js 獲取當(dāng)前函數(shù)參數(shù)對象的實(shí)現(xiàn)代碼

 更新時(shí)間:2016年06月20日 16:50:57   投稿:mdxy-dxy  
這篇文章主要介紹了Js 獲取當(dāng)前函數(shù)參數(shù)對象的實(shí)現(xiàn)代碼,需要的朋友可以參考下

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

/*------------------------------------------
 * 清除字符串兩端空格,包含換行符、制表符
 *------------------------------------------*/
String.prototype.Trim = function () { return this.replace(/(^[\s\n\t]+|[\s\n\t]+$)/g, ""); }

/*----------------------------------------
 * 獲取當(dāng)前函數(shù)的參數(shù)對象
 *----------------------------------------
 * diffCase 是否區(qū)分大小寫,默認(rèn) false
 *----------------------------------------*/
function GetArgs(diffCase) {

 //返回參數(shù)對象
 var result = new Object();

 //獲取調(diào)用函數(shù)
 var caller = arguments.callee.caller;
 if (caller == null || caller.arguments.length == 0) return result;

 //獲取函數(shù)的參數(shù)集合
 var matchs = caller.toString().match(/\s*function[\w\s]*\(([\w\s,]*)\)/);
 if (matchs == null) return result;
 var argArray = matchs[1].split(",");

 //獲取參數(shù)對象
 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;
     }
    }
   }
  }
 }
   
 //多個(gè)參數(shù)將第一個(gè)后面的參數(shù)覆蓋對象傳入的參數(shù)
 for (var i = index; i < argArray.length && i < caller.arguments.length; i++)
  result[argArray[i].Trim()] = caller.arguments[i];

 return result;
}

調(diào)用示例:

//測試函數(shù)
function Test(name, age) {

 //獲取參數(shù)對象
 var args = GetArgs();

 alert("姓名:" + args.name + ",年齡:" + args.age);

}

//調(diào)用測試
Test("張三", 25);
Test({ name: "李四", age: 30 });
Test({ name: "王五" }, 18);

相關(guān)文章

最新評論

昭平县| 巴彦淖尔市| 青铜峡市| 宁远县| 内丘县| 潜山县| 资兴市| 玉门市| 准格尔旗| 大丰市| 平原县| 桃江县| 宜昌市| 休宁县| 繁峙县| 清镇市| 云龙县| 高安市| 巢湖市| 高雄市| 通城县| 辽宁省| 元氏县| 罗定市| 山东| 武乡县| 双流县| 密山市| 简阳市| 宜阳县| 安塞县| 六枝特区| 临海市| 丘北县| 盐津县| 平潭县| 美姑县| 礼泉县| 德清县| 衡东县| 汕头市|