使用闭包对setTimeout进行简单封装避免出错


Posted in Javascript onJuly 10, 2013

在写js脚本时,经常会用到一些拼写函数的情况,例如调用setTimeout

var msgalert="test"; 
function TestAlert(msg) 
{ 
alert(msg) 
} $(document).ready(function () { 
$("#btnCancel").click(function (e) { 
setTimeout("TestAlert("+msgalert+")",1000); 
}); 
})

查了很长时间,为什么就是弹不出对话框呢。检查了很长时间才发现,原来是少了一对单引号
$(document).ready(function () { 
$("#btnCancel").click(function (e) { 
setTimeout("TestAlert('"+msgalert+"')",1000); 
}); 
})

这样的写法容易出错,还不容易检查出错误,如果使用闭包就可完全避免,改写如下
var msgalert="test"; 
function dalayAlert(msg ,time){ 
setTimeout( 
TestAlert(msg), 
time 
); 
} 
function TestAlert(msg) 
{ 
alert(msg) 
} $(document).ready(function () { 
$("#btnCancel").click(function (e) { 
dalayAlert(msgalert,1000) 
}); 
})

由于使用了闭包,也简单了很多,检查错误也很容易了
Javascript 相关文章推荐
jquery cookie插件代码类
May 26 Javascript
在Ajax中使用Flash实现跨域数据读取的实现方法
Dec 02 Javascript
jquery清空表单数据示例分享
Feb 13 Javascript
JavaScript制作的可折叠弹出式菜单示例
Apr 04 Javascript
JavaScript跨域方法汇总
Oct 16 Javascript
javascript实现控制div颜色
Jul 07 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
Nov 28 Javascript
Vue2实现组件props双向绑定
Dec 02 Javascript
vue组件父子间通信之综合练习(聊天室)
Nov 07 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
Feb 06 Javascript
详解vue-cli3开发Chrome插件实践
May 29 Javascript
解决vue的router组件component在import时不能使用变量问题
Jul 26 Javascript
js Map List 遍历使用示例
Jul 10 #Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
Jul 10 #Javascript
JS下拉框内容左右移动效果的具体实现
Jul 10 #Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
Jul 10 #Javascript
关于js遍历表格的实例
Jul 10 #Javascript
js浮动图片的动态效果
Jul 10 #Javascript
JS文本框默认值处理详解
Jul 10 #Javascript
You might like
Php中文件下载功能实现超详细流程分析
2012/06/13 PHP
php如何实现只替换一次或N次
2015/10/29 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
JavaScript的Cookies
2008/01/16 Javascript
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
Prototype Array对象 学习
2009/07/19 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
2014/12/18 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
AngularJS 简单应用实例
2016/07/28 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
vue 组件 全局注册和局部注册的实现
2018/02/28 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
2019/11/07 Javascript
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
用python实现简单EXCEL数据统计的实例
2017/01/24 Python
利用Python循环(包括while&for)各种打印九九乘法表的实例
2017/11/06 Python
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
python 表格打印代码实例解析
2019/10/12 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
使用Django搭建一个基金模拟交易系统教程
2019/11/18 Python
Python类如何定义私有变量
2020/02/03 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
利用Bootstrap实现漂亮简洁的CSS3价格表实例源码
2017/03/02 HTML / CSS
html5使用Drag事件编辑器拖拽上传图片的示例代码
2017/08/22 HTML / CSS
日本网路线上商品代购服务:转送JAPAN
2016/08/05 全球购物
瑞士领先的网上超市:LeShop.ch
2018/11/14 全球购物
员工培训协议书
2014/09/15 职场文书
2015年元旦联欢晚会活动总结
2014/11/28 职场文书
2015年采购部工作总结
2015/04/23 职场文书
2016年社区中秋节活动总结
2016/04/05 职场文书
python 逐步回归算法
2021/04/06 Python