$(function () {
// document.getElementById('submit').addEventListener('click', debounce(submitFn));
document.getElementById('submit').addEventListener('click', submitFn.debounce(1));
})
function submitFn (val) {
console.log( $('#inputVal').val() );
console.log(this);
console.log(val);
}
Function.prototype.debounce = function () {
const Fn = this;
let flag = null;
const args = arguments;
return function () {
let firstRun = !flag;
if (flag) { clearTimeout(flag) };
if (firstRun) {
Fn.apply(this, args)
}
flag = setTimeout(() => {
flag = null;
}, 1000)
}
}
const debounce = function (Fn) {
let flag = null;
return function () {
let firstRun = !flag;
if (flag) { clearTimeout(flag) };
if (firstRun) {
Fn.apply(this, arguments)
}
flag = setTimeout(() => {
flag = null;
}, 500)
}
}
js 防抖(外包和在方法原型上防抖)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 实例属性/方法 & 静态属性/方法 实例属性/实例方法通过对象调用 静态属性/静态方法用类名直接调用 私有属性/方...
- 实例方法 构造函数中this上添加的成员,在Cat构造方法里面,定义在this中的变量和方法,只有实例才能访问到:...
- 转自:https://github.com/dreamapplehappy/hacking-with-javasc...