在写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)
});
})
由于使用了闭包,也简单了很多,检查错误也很容易了