105 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
// 获取路由URL参数
 | 
						||
function urlSearch(parmas) {
 | 
						||
  let href = window.location.href
 | 
						||
  let query = href.substring(href.indexOf('?')+1);
 | 
						||
  let vars = query.split("&");
 | 
						||
  for (var i = 0; i < vars.length; i++) {
 | 
						||
    let pair = vars[i].split("=");
 | 
						||
    if(pair[0] == parmas){
 | 
						||
      return pair[1];
 | 
						||
    }
 | 
						||
  }
 | 
						||
}
 | 
						||
 | 
						||
// 深拷贝
 | 
						||
function deepClone(obj){
 | 
						||
  let objClone = Array.isArray(obj)?[]:{};
 | 
						||
  if(obj && typeof obj === "object"){
 | 
						||
    for(key in obj){
 | 
						||
      if(obj.hasOwnProperty(key)){
 | 
						||
          // 判断ojb子元素是否为对象,如果是,递归复制
 | 
						||
        if(obj[key] && typeof obj[key] === "object"){
 | 
						||
          objClone[key] = deepClone(obj[key]);
 | 
						||
        }else{
 | 
						||
          // 如果不是,简单复制
 | 
						||
          objClone[key] = obj[key];
 | 
						||
        }
 | 
						||
      }
 | 
						||
    }
 | 
						||
  }
 | 
						||
  return objClone;
 | 
						||
}  
 | 
						||
 | 
						||
// 防抖
 | 
						||
function _debounce(fn, delay = 300) {
 | 
						||
  var timer = null;
 | 
						||
  return function () {
 | 
						||
    var _this = this;
 | 
						||
    var args = arguments;
 | 
						||
    if (timer) clearTimeout(timer); 
 | 
						||
    timer = setTimeout(function () {
 | 
						||
      fn.apply(_this, args);
 | 
						||
    }, delay);
 | 
						||
  };
 | 
						||
}
 | 
						||
 | 
						||
// 节流
 | 
						||
function _throttle(fn,delay = 1000){
 | 
						||
  var lastTime, timer, delay;
 | 
						||
  return function(){
 | 
						||
    var _this = this;
 | 
						||
    var args = arguments;
 | 
						||
    var nowTime = Date.now(); 
 | 
						||
    if(lastTime && nowTime - lastTime < delay){
 | 
						||
      if (timer) clearTimeout(timer); 
 | 
						||
      timer = setTimeout(function(){
 | 
						||
        lastTime = nowTime;
 | 
						||
        fn.apply(_this,args);
 | 
						||
      },delay)
 | 
						||
    }else{
 | 
						||
      lastTime = nowTime;
 | 
						||
      fn.apply(_this,args);
 | 
						||
    } 
 | 
						||
  }
 | 
						||
}
 | 
						||
 | 
						||
/*
 | 
						||
* 下划线转换驼峰
 | 
						||
*/ 
 | 
						||
function underlineToHump(str) {
 | 
						||
  // 如果首字母是_,执行 replace 时会多一个_,这里需要去掉
 | 
						||
  if(str.slice(0,1) === '_'){ 
 | 
						||
    str = str.slice(1);
 | 
						||
  }
 | 
						||
  return str.replace(/([^_])(?:_+([^_]))/g, function ($0, $1, $2) {
 | 
						||
    return $1 + $2.toUpperCase();
 | 
						||
  });
 | 
						||
}
 | 
						||
 | 
						||
/*
 | 
						||
* 驼峰转换下划线
 | 
						||
*/ 
 | 
						||
function humpToUnderline(str) {
 | 
						||
  let temp = str.replace(/[A-Z]/g, function (match) { 
 | 
						||
      return "_" + match.toLowerCase();
 | 
						||
    });
 | 
						||
  // 如果首字母是大写,执行replace时会多一个_,这里需要去掉
 | 
						||
  if(temp.slice(0,1) === '_'){ 
 | 
						||
    temp = temp.slice(1);
 | 
						||
  }
 | 
						||
  return temp;
 | 
						||
}
 | 
						||
 | 
						||
 | 
						||
 | 
						||
 | 
						||
 | 
						||
export{
 | 
						||
  urlSearch,
 | 
						||
  deepClone,
 | 
						||
  _debounce,
 | 
						||
  _throttle,
 | 
						||
  underlineToHump,
 | 
						||
  humpToUnderline,
 | 
						||
}
 |