-
防抖与节流
-
// 防抖 一个函数多次触发只执行最后一次 // 使用场景 输入框搜索提示 function fangdou(fn, delay = 500){ let timer = null return function(...args){ if(timer){ clearTimeout(timer) } timer = setTimeout(() => { fn.apply(this, args) timer = null }, delay) } } let fn = fangdou((a,b) => {console.log( a + b)}) fn(1, 2); fn(1, 3); fn(1, 4) // 5
-
// 节流 一个函数多次触发 一段时间内只执行一次 // 使用场景 抢购(限时抢购每人一次) function jieliu(fn, delay = 500){ let timer = null return function(...args){ if(timer){ return } timer = setTimeout(() => { fn.apply(this, args) }, delay) } } let fn1 = jieliu((a, b) => console.log(a + b)) fn1(1, 2); fn1(1, 3); fn1(1, 4) // 3
-
arguments
是一个对应于传递给函数的参数的类数组对象。 -
arguments
对象是所有(非箭头)函数中都可用的局部变量 -
建议使用剩余参数…args
防抖与节流
于 2023-01-29 16:03:46 首次发布