let debounce = function (func, delay) {
let timeout
return function () {
let args = Array.prototype.slice.call(arguments)
if(timeout) clearTimeout
timeout = setTimeout(()=>{
func.apply(this,args)
},delay)
}
}
let ce = function (a) {
alert(a)
}
debounce(ce(12),3000)
之前写了一个hook中的防抖,现在放一个普通的防抖,原理就是用的闭包,外部函数访问内部作用域,由于es6使用了this所以这里不用再在return前面定义一个context来保存this