vue 函数节流中匿名函数问题

问题
这是原生版函数节流方法:匿名函数

(注: return function(){}methods中不能执行)

请问, 怎么将其改成vue版呢?

由于在滚动和中文搜索框中十分常用,请教

贴代码:

created(){
    window.addEventListener('scroll', () => {
        this.debounce()(this._log, 1000);
    }
},
methods: {
    debounce (fn, idle) {
      let setTm;
      console.log('debounce')
      if (!idle || idle <= 0) return fn;
      return function () {
        clearTimeout(setTm);
        setTm = setTimeout(fn.bind(this, ...arguments), idle);
      }
    },
    _log(){
        console.log('_log')
    },
    
}
阅读 8.1k
2 个回答

绑定的方式应该是:

 window.addEventListener('scroll', 
       this.debounce(this._log, 1000));

看下fiddle

推荐问题
宣传栏