使用闭包对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 学习 几种常用方法
Jun 11 Javascript
JavaScript 匿名函数(anonymous function)与闭包(closure)
Oct 04 Javascript
JS连连看源码完美注释版(推荐)
Dec 09 Javascript
js与C#进行时间戳转换
Nov 14 Javascript
JS使用正则表达式实现关键字替换加粗功能示例
Aug 03 Javascript
Vue-cli Eslint在vscode里代码自动格式化的方法
Feb 23 Javascript
centos 上快速搭建ghost博客方法分享
May 23 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
Jan 15 Javascript
vue.js实现图书管理功能
Sep 24 Javascript
卸载vue2.0并升级vue_cli3.0的实例讲解
Feb 16 Javascript
详解JS WebSocket断开原因和心跳机制
May 07 Javascript
Vue Element plus使用方法梳理
Dec 24 Vue.js
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
写一个用户在线显示的程序
2006/10/09 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
php创建无限级树型菜单
2015/11/05 PHP
jquery 插件 人性化的消息显示
2008/01/21 Javascript
ExtJS PropertyGrid中使用Combobox选择值问题
2010/06/13 Javascript
JavaScript高级程序设计 扩展--关于动态原型
2010/11/09 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
JavaScript模版引擎的基本实现方法浅析
2016/02/15 Javascript
巧用数组制作图片切换js代码
2016/11/29 Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
2018/04/12 jQuery
angular 内存溢出的问题解决
2018/07/12 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
PyQt5实现类似别踩白块游戏
2019/01/24 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
django的auth认证,authenticate和装饰器功能详解
2019/07/25 Python
Python Tkinter模块 GUI 可视化实例
2019/11/20 Python
python不同系统中打开方法
2020/06/23 Python
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
如何做好总经理助理
2013/11/12 职场文书
优秀民警事迹材料
2014/01/29 职场文书
优秀老师事迹材料
2014/02/05 职场文书
启动仪式策划方案
2014/06/14 职场文书
暑假安全保证书
2015/02/28 职场文书
2015年乡镇人大工作总结
2015/04/22 职场文书
首都博物馆观后感
2015/06/05 职场文书
vue如何批量引入组件、注册和使用详解
2021/05/12 Vue.js
68行Python代码实现带难度升级的贪吃蛇
2022/01/18 Python
Python编写冷笑话生成器
2022/04/20 Python