js常用工具类函数方法
1 节流函数
function throttle(fn,delay) {
var lastTime = 0;
return function() {
var nowTime = Date.now()
if(nowTime-lastTime>delay) {
fn.call(this)
lastTime=nowTime
}
}
}
2 防抖函数
function debounce(fn,delay) {
var timer = null
return function() {
clearTimeout(timer)
timer = setTimeout(function(){
fn.apply(this)
},delaly)
}
}
3 深度克隆
function deepClone(target,map = new Map()) {
if(target&& typeof target ==='object') {
var deepTarget = map.get(target)
if(deepTarget ) return deepTarget
deepTarget = Array.isArray(target)?[]:{}
map.set(target,deepTarget)
for(var key in target) {
if(target.hasOwnProperty(key)) {
deepTarget [key] = deepClone(target[key],map)
}
}
return deepTarget
} else {
return target
}
}
4 浅拷贝
function clone(target) {
if(target instanceof Array) {
return [...target]
} else if(target && typeof target==='object') {
return {...target}
} else {
return target
}
}
浙公网安备 33010602011771号