博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js防止重复触发事件
阅读量:5769 次
发布时间:2019-06-18

本文共 937 字,大约阅读时间需要 3 分钟。

调用函数

之前做项目的过程中,为了防止用户重复点击事件,往往在每一个函数里写一个flag来做判断,但是这样的方式会导致代码冗余,所以借助 函数里arguments.callee ,写了一个函数,如下:

// 防重复触发stopReapeatEvent=function (obj) {    if (obj.callFlag) return true;    obj.callFlag=!obj.callFlag;    clearTimeout(obj.iTime);    obj.iTime=setTimeout(function(){        obj.callFlag=!obj.callFlag;    }, 1000);}

调用的时候也很简单,

//调用if(stopReapeatEvent(arguments.callee))  return ;

原理:补充 caller 和 callee 知识点

caller:

返回一个对函数的引用,该函数调用了当前函数。

functionName.caller

functionName 对象是所执行函数的名称。

说明:对于函数来说,caller 属性只有在函数执行时才有定义。 如果函数是由 Javascript 程序的顶层调用的,那么 caller 包含的就是 null 。

callee:

返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。

[function.]arguments.callee

可选项 function 参数是当前正在执行的 Function 对象的名称。

说明

callee 属性的初始值就是正被执行的 Function 对象。

callee 属性是 arguments 对象的一个成员,它表示对函数对象本身的引用,这有利于匿名函数的递归或者保证函数的封装性。而该属性仅当相关函数正在执行时才可用。还有需要注意的是callee拥有length属性,这个属性有时候用于验证还是比较好的。arguments.length是实参长度,arguments.callee.length是形参长度,由此可以判断调用时形参长度是否和实参长度一致。

求指正,谢谢!

转载地址:http://sysux.baihongyu.com/

你可能感兴趣的文章
从移动到PC,华为跨界演绎多元的精彩
查看>>
flume的安装使用
查看>>
ListView异步加载图片
查看>>
Android笔记----TranslateAnimation莫名其妙错位的坑
查看>>
我的友情链接
查看>>
Win 2003存储空间如何的有效管理
查看>>
《wc》-linux命令五分钟系列之十七
查看>>
开源性能可视化工具——FlameScope模式识别
查看>>
今天,你空杯心态了么?
查看>>
中国富媒体发展之路
查看>>
Hadoop架构以及伪分布式安装
查看>>
actionbar显示overflow
查看>>
整理一下Entity Framework的查询
查看>>
我的友情链接
查看>>
文本过长后,显示省略号。ff特有的hack方法。
查看>>
也谈大学计算机网络
查看>>
mysql 索引
查看>>
swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程
查看>>
游荡在空中
查看>>
SystemCenter2012SP1实践(20)集成系统部署服务WDS
查看>>