求教一个关于setTimeout的问题

有一个地方不是很理解,如图所示 settimeout是异步执行的, 而each是同步执行。

被循环的对象有6个子集合,为什么最后在控制台输出的是对象的6个子集合,而不是输出6次这个对象的最后一个子集合?

按理说在执行到settimeout的时候循环不是已经指向最后一个子集合了吗?

图片描述

控制台的输出结构如下

图片描述

阅读 1.7k
3 个回答

因为调用each传入一个匿名函数,拥有自己的作用域,并不会被全局污染

每次调用each的时候,el的作用范围只限于当前的作用域里面,所以每次输出的都不一样,你可以看看这两个的区别;
clipboard.png

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题