为了账号安全,请及时绑定邮箱和手机立即绑定

return 的函数,为什么被执行了?

return 的函数,为什么被执行了?

MM们 2019-04-08 11:18:59
如下代码:for(vari=0,l=5;i
查看完整描述

2 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

因为setTimeout就是在指定延时之后执行第一个参数,也就是传入的函数。
你以为setTimeout执行的是:
(function(j){
returnfunction(){
console.log(j)
}
})(i)
但其实这一串是一个IIFE,当解释器读到这些代码的时候就已经把它执行了,然后返回了:
function(){
console.log(j)
}
所以,500ms过后,setTimeout实际执行的正是被返回之后的这个函数体。
                            
查看完整回答
反对 回复 2019-04-08
?
HUWWW

TA贡献1874条经验 获得超12个赞

函数是只是被return了,然后作为第一个参数传给了setTimeout,这不就是setTimeout的用法么?
                            
查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 428 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信