debounce函数的实现

原创
2017/09/20 13:52
阅读数 1.7K

简单的实现了debounce函数,用于解决重复执行问题! 也就是说在某个时间段将多个执行归于一个;

源码:

function Debounce(fn, delay) {
	this.timeout = 0;
	this.fn = fn;
	this.delay = delay;

	this.stop = function() {
		clearTimeout(this.timeout);
	}

	this.run = function(excutor, delay) {
		this.stop();
		var fn = excutor || this.fn;
		var delayTime = delay || this.delay;
		this.timeout = setTimeout(function() {
			fn();
		},
		delayTime);
	}
}

Demo:

//第一种写法
var de = new Debounce(function() {
	console.log(111)
},
800);
de.run()


//第二种写法
new Debounce().run(function() {
		console.log(222)
	},
	800)
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部