首先看没有闭包的代码
<input type="button" value="测试" onclick="check_btn()"/> <script type="text/javascript"> function check_btn() { alert('1'); } </script>
点击按钮,弹出对话框1,没有问题
但是,如果我们在浏览器的开放工具上面修改了这个方法,
此时,我们如果再点击按钮,弹出的对话框显示的是2
客户端将会随意更改事件行为,后果将不堪设想
使用可以解决这个问题,做法如下
<input type="button" id="test_btn" value="测试" /> <script type="text/javascript"> (function(){ $("#test_btn").click(function(){ alert('1'); }); })(); </script>