在写js脚本时经常会用到一些拼写函数的情况例如调用setTimeout 复制代码 代码如下: var msgalert="test"; function TestAlert(msg) { alert(msg) }
$(document)ready(function () { $("#btnCancel")click(function (e) { setTimeout("TestAlert("+msgalert+")"); }); }) 查了很长时间为什么就是弹不出对话框呢检查了很长时间才发现原来是少了一对单引号 复制代码 代码如下: $(document)ready(function () { $("#btnCancel")click(function (e) { setTimeout("TestAlert("+msgalert+")"); }); }) 这样的写法容易出错还不容易检查出错误如果使用闭包就可完全避免改写如下 复制代码 代码如下: 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) }); }) 由于使用了闭包也简单了很多检查错误也很容易了 |