猿问

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

问题这是原生版函数节流方法:匿名函数
(注:returnfunction(){}在methods中不能执行)
请问,怎么将其改成vue版呢?
由于在滚动和中文搜索框中十分常用,请教
贴代码:
created(){
window.addEventListener('scroll',()=>{
this.debounce()(this._log,1000);
}
},
methods:{
debounce(fn,idle){
letsetTm;
console.log('debounce')
if(!idle||idle<=0)returnfn;
returnfunction(){
clearTimeout(setTm);
setTm=setTimeout(fn.bind(this,...arguments),idle);
}
},
_log(){
console.log('_log')
},
}
慕容森
浏览 297回答 2
2回答

慕森卡

绑定的方式应该是:window.addEventListener('scroll',this.debounce(this._log,1000));看下fiddle

慕桂英3389331

varthrottle=(fun,wait=5000)=>{varlast=0;returnfunction(){varargs=arguments;varctx=this;varnow=Date.now();if(now-last>=wait){last=now;returnfun.apply(ctx,args);}console.log(`上一个周期未执行完毕`)}}exportdefault{name:'VueComponent',methods:{scroll:throttle(function(){//...})}}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答