Vue 防抖节流获取this问题

1. 防抖

  debounce(func, delay = 500) {
    let _this = this;
    let args = arguments;
    return (function () {
      if (_this.timeout) {
        clearTimeout(_this.timeout);
      }
      _this.timeout = setTimeout(() => {
        func.apply(_this, args);
      }, delay);
    })();
  }

  // 使用
  this.$utils.debounce(this.dosomething);

2. 节流

  throttle(fn, time = 500) {
    let _this = this;
    let args = arguments;
    return (function () {
      if (_this.timeout) {
        return;
      }
      _this.timeout = setTimeout(() => {
        _this.timeout = null;
      }, time);
      fn.apply(_this, args);
    })();
  }

  // 使用
  this.$utils.throttle(this.dosomething);
posted @ 2022-12-02 17:28  Li_pk  阅读(259)  评论(0)    收藏  举报