防抖与节流实现
函數(shù)防抖
規(guī)定間隔不超過(guò)n毫秒的連續(xù)調(diào)用內(nèi)只有一次調(diào)用生效。
function debounce(func, wait) {let timeId;return function(...args) {let _this = this;clearTimeout(timeId);timeId = setTimeout(function() {func.apply(_this, args);}, wait);} }函數(shù)節(jié)流
規(guī)定n秒內(nèi)函數(shù)只有一次調(diào)用生效。
function throttle(func, wait) {let lastTime, deferTimer;return function(...args) {let _this = this;let currentTime = Date.now();if (!lastTime || currentTime >= lastTime + wait) {lastTime = currentTime;func.apply(_this, args);} else {clearTimeout(deferTimer);deferTimer = setTimeout(function() {lastTime = currentTime;func.apply(_this, args);}, wait);}} }總結(jié)
- 上一篇: js实现千分位分割
- 下一篇: Promise、Promise.all和