老师,能帮再讲下,判断锁状态的,if(!lock) return;

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,关于函数节流理解如下:

函数节流的目的是:当用户多次重复快速地点击按钮时,防止按钮事件中的逻辑代码不断重复执行。

函数节流的实现是设置一个节流锁(比如:lock),程序刚开始运行时,锁肯定是打开状态(即lock = true),因为只有在打开状态,才允许用户在点击按钮时,执行按钮事件中的逻辑代码。

所以 ,以下代码是在点击事件的开头,先判断lock的状态:如果lock为true,!lock为false,则不会执行return(即退出该事件函数),而会继续执行后面的代码:此时需要将lock变为false,防止移动逻辑代码还没有执行完毕,用户再次点击按钮,而再次执行移动逻辑代码;如果lock为false,!lock为true,则会执行return(即退出该事件函数),后面的代码不再执行。

right_btn.onclick = function() {
// 判断节流锁的状态,如果是关闭的,那么就什么都不做
if (!lock) return;
// 关锁
lock = false;
// 移动逻辑代码
...
}

当移动逻辑代码执行完毕后,此时锁还是关闭状态,需要将其打开,用户再次点击按钮时,才会执行移动逻辑代码,如图

http://img1.sycdn.imooc.com//climg/6108b86f096bf3cd11260593.jpg

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师