使用闭包对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 相关文章推荐
JavaScript 对象、函数和继承
Jul 07 Javascript
js removeChild 障眼法 可能出现的错误
Oct 06 Javascript
setTimeout与setInterval在不同浏览器下的差异
Jan 24 Javascript
JS按回车键实现登录的方法
Aug 25 Javascript
javascript对象的创建和访问
Mar 08 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
Sep 24 Javascript
JS实现双击内容变为可编辑状态
Mar 03 Javascript
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
Mar 28 jQuery
zTree树形插件异步加载方法详解
Jun 14 Javascript
以v-model与promise两种方式实现vue弹窗组件
May 21 Javascript
jQuery创建及操作xml格式数据示例
May 26 jQuery
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
Jun 17 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中在数据库中保存Checkbox数据(2)
2006/10/09 PHP
php URL编码解码函数代码
2009/03/10 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
2014/09/06 PHP
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
html dom节点操作(获取/修改/添加或删除)
2014/01/23 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
jQuery中get和post方法传值测试及注意事项
2014/08/08 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
举例讲解JavaScript中关于对象操作的相关知识
2015/11/16 Javascript
解析浏览器端的AJAX缓存机制
2016/06/21 Javascript
原生JS取代一些JQuery方法的简单实现
2016/09/20 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
2017/12/20 Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
2018/04/12 jQuery
JS实现从对象获取对象中单个键值的方法示例
2019/06/05 Javascript
详解Vuex下Store的模块化拆分实践
2019/07/31 Javascript
Python使用pygame模块编写俄罗斯方块游戏的代码实例
2015/12/08 Python
python判断字符串是否是json格式方法分享
2017/11/07 Python
python调用摄像头显示图像的实例
2018/08/03 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
2019/06/04 Python
python字符串判断密码强弱
2020/03/18 Python
零基础小白多久能学会python
2020/06/22 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
教你打造完美的创业计划书
2014/01/06 职场文书
集体生日活动方案
2014/08/18 职场文书
提档介绍信范文
2015/10/22 职场文书
python 自动化偷懒的四个实用操作
2021/04/11 Python
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
python使用torch随机初始化参数
2022/03/22 Python
深入理解MySQL中MVCC与BufferPool缓存机制
2022/05/25 MySQL