您的位置:首页 > 其它

函数节流和函数防抖及闭包

2020-07-28 23:11 127 查看

函数节流:是确保函数特定的时间内至多执行一次。
实现

const _.throttle = (func, wait) => {
let timer;
return () => {
if (timer) {
return;
}
timer = setTimeout(() => {
func();
timer = null;
}, wait);
};
};

函数防抖:就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。

const _.debounce = (func, wait) => {
let timer;

return () => {
clearTimeout(timer);
timer = setTimeout(func, wait);
};
};

闭包:有权访问另外一个函数作用域中的变量的函数
优点:
(1)可以重复使用变量,并且不会造成变量污染
(2)可以用来定义私有属性和私有方法
缺点:
比普通函数更占用内存,会导致网页性能变差

function Girl(name, bf) {
var secret = bf;
this.name = name;
//通过showlove做接口来读取私有属性secret
this.showlove = function () {
return secret;
}
//移情别恋
this.movelove = function () {
secret = "薛潘";
}
}
var girl = new Girl("林黛玉", "贾宝玉");
alert(girl.name + "喜欢" + girl.showlove());//林黛玉喜欢贾宝玉
girl.movelove();
alert(girl.name + "喜欢" + girl.showlove());//林黛玉喜欢薛潘
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: