for循环实现每隔1s打印12345,使用settimeout为什么不能用箭头函数呢?
for (var i = 0; i < 5; i++) {
(function (i) {
setTimeout((i) => {
console.log(i);
}, i * 1000);
})(i)
}
打印结果是5个undefined
如果settimeout的箭头函数换成普通函数就能正常打印1-5,为什么使用箭头函数不行呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
把你箭头函数的参数i去掉,这个箭头函数是定时器的回调函数,而定时器回调没有参数,所以是undefined,另外打印的i是从0开始的,所以需要加1