1. 两对函数

// 循环执行
// 在每个毫秒数之后,调用函数
var timeid = window.setInterval(函数名, 毫秒数);
window.clearInterval(timeid ); // 定时执行:1秒=== 1000毫秒
// 在毫秒数之后,调用函数
var timeid = window.setTimeout(函数名, 毫秒数);
window.clearTimtout(timeid);

2. 闭包与循环调用

今天在开发过程中,想对一个验证失败的循环列表中的元素进行背景色标红,然后再2秒之后,取消标红功能,只保留边框为红色。使用的时候遇到一个提示:“mutable variable accessible from closure”,大概意思就是在setTimeout参数1:函数名对应的函数体中,使用了循环变量,这个变量是可变值,也就是说,在时间到的时候,我们调用函数,就会发现所有循环体针对的都是最后一个循环变量进行的操作。示例代码:

for (var i=0; i < fails.length; i++) {
setTimeout(function () { console.log(fails[i]; }, 2000);
} // 出错位置:fails[i],因为i是可变值,在循环完成后,setTimeout含没有调用,
// 当开始调用的时候,i的值已经为比如:3, 这个时候4个setTimout函数操作的
// 就是同一个fails[3]元素了。

3. 如果解决

搜索了一圈,还没有找到解决办法,先记录在这里,等找到解决办法了,再回来完善吧。

最新文章

  1. 使用Android Studio进行单元测试
  2. AX 与Citrix打印机问题
  3. fork函数
  4. 【测试】通过SYS用户,对SCOTT用户的会话进行跟踪,并分析此会话中性能消耗较高的SQL,分析并给出优化建议。
  5. gridview两列数据的互换
  6. 数据结构 - 双链表(C++)
  7. android 以不规则图片为边框切割另外图片
  8. 在使用&lt;script&gt;嵌入JavaScript代码时,不要在代码中的任何地方出现&quot;&lt;/script&gt;&quot;字符串
  9. .NET技术基础总结 ----第一章
  10. A*寻路算法入门(一)
  11. Active Directory 域服务安装与测试
  12. 获取安卓应用APK包名的方法
  13. HttpRunnerManager接口测试平台部署在服务器上(Centos + python3.6 + Mysql5.7 + uwsgi + nginx)
  14. ios手机域名https协议注意事项
  15. java根据jar包反编译后修改再打包回jar的做法
  16. Standard C 之 math.h和float.h
  17. Java基础方法
  18. 使用cronolog工具给tomcat进行日志切割
  19. UOJ #131 【NOI2015】 品酒大会
  20. Codeforces Round #440 (Div. 2)【A、B、C、E】

热门文章

  1. LeetCode 5264 在受污染的二叉树中查找元素 Find Elements in a Contaminated Binary Tree
  2. IDEA快捷键汇总
  3. linux中dd相关命令骚操作
  4. PHP Laravel-包含你自己的帮助函数
  5. Kali Rolling 系统配置总结 (Updateing)
  6. SQL中Truncate的用法
  7. 万恶之源-python内容的进化
  8. Oracle10g安装步骤(二)
  9. Java多线程——对象及变量的并发访问
  10. Linux的awk命令详解