Javascript 使用回调函数注意事项
2015-07-01 11:19
555 查看
javascript中经常会使用到回调函数, 并且为了保证代码结构清晰整洁, 会将回调后需要执行的逻辑另外定义一个函数来执行, 例如:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>IT Art</title>
</head>
<body>
<div id="timePanel">3秒后自动隐藏</div>
<script type="text/javascript">
setTimeout(function(){
var timePanel = document.getElementById("timePanel");
timePanel.style.display = 'None';
}, 3000);
</script>
</body>
</html>
可以看到, 如果setTimeout 中直接使用匿名回调时, 当有很多的逻辑判断代码时, 会导致代码嵌套过多, 不容易阅读和维护, 所以我们经常这么做:
这里比较容易犯的一个错误就是:
setTimeout(timeOutCallBack, 3000);
如果不小心的话, 很容易写成这样:
setTimeout(timeOutCallBack(), 3000);
增加了一个括号, 就会导致timeOutCallBack在执行到setTimeout 这一行后就直接被运行, 不会延迟3秒.
<< IT是一门艺术
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>IT Art</title>
</head>
<body>
<div id="timePanel">3秒后自动隐藏</div>
<script type="text/javascript">
setTimeout(function(){
var timePanel = document.getElementById("timePanel");
timePanel.style.display = 'None';
}, 3000);
</script>
</body>
</html>
可以看到, 如果setTimeout 中直接使用匿名回调时, 当有很多的逻辑判断代码时, 会导致代码嵌套过多, 不容易阅读和维护, 所以我们经常这么做:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>IT Art</title> </head> <body> <div id="timePanel">3秒后自动隐藏</div> <script type="text/javascript"> var timeOutCallBack = function(){ var timePanel = document.getElementById("timePanel"); timePanel.style.display = 'None'; }; setTimeout(timeOutCallBack, 3000); </script> </body> </html>
这里比较容易犯的一个错误就是:
setTimeout(timeOutCallBack, 3000);
如果不小心的话, 很容易写成这样:
setTimeout(timeOutCallBack(), 3000);
增加了一个括号, 就会导致timeOutCallBack在执行到setTimeout 这一行后就直接被运行, 不会延迟3秒.
<< IT是一门艺术
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 异步流程控制:7 行代码学会 co 模块
- JavaScript拆分字符串时产生空字符的原因
- IE8开发人员工具教程(二)
- 在flex中执行一个javascript方法的简单方式
- Flex结合JavaScript读取本地路径的方法
- PowerShell中执行Javascript的方法示例
- javascript asp教程第六课-- response方法
- javascript asp教程More About Recordsets
- javascript asp教程第十二课---session对象
- javascript asp教程创建数据库连接
- javascript asp教程错误处理
- javascript asp教程第十课--global asa