forked from angelo/web-retail-h5
				
			
		
			
	
	
		
			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, | |||
|  | } |