var utils = {
deepClone(obj) {
let objClone = {}
const _obj = JSON.stringify(obj)
objClone = JSON.parse(_obj)
return objClone
},
// 防抖
_debounce(fn, delay) {
var delay = delay || 200;
var timer;
return function() {
var th = this;
var args = arguments;
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(function() {
timer = null;
fn.apply(th, args);
}, delay);
}
},
// 节流
_throttle(fn, interval) {
var last;
var timer;
var interval = interval || 200;
return function() {
var th = this;
var args = arguments;
var now = +new Date();
if (last && now - last < interval) {
clearTimeout(timer);
timer = setTimeout(function() {
last = now;
fn.apply(th, args);
}, interval);
} else {
last = now;
fn.apply(th, args);
}
}
}
}
export default utils
vue中防抖和节流
最新推荐文章于 2024-07-31 23:57:36 发布
本文介绍了JavaScript中三个常用的实用工具函数:深克隆、防抖和节流。深克隆函数用于创建一个对象的完全复制,避免原始对象被修改。防抖函数在频繁触发的事件中,确保在特定延迟后只执行一次,常用于窗口滚动事件。节流函数则限制函数的执行频率,保证在固定间隔内执行,适用于长列表滚动或定时刷新等场景。
摘要由CSDN通过智能技术生成