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

js setTimeout中return 函数如何自己执行的?

js setTimeout中return 函数如何自己执行的?

智慧大石 2018-09-04 13:10:15
setTimeout(function() {    return function() {        console.log("setTimeout");    };}(), 500);function test(){    return function() {        console.log("test");    };}test();上述执行结果为setTimeout。test函数里边的console语句不执行很容易理解,返回一个函数但没有调用它,所以不执行,也就不会输出test。不过setTimeout里边函数在500ms后执行,也是返回一个函数,怎么就执行了,谁调用的它呢?求教
查看完整描述

1 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

setTimeout的第一个参数是这个东西:

function() {    return function() {        console.log("setTimeout");
    };
}()

这是一个立即执行函数,并不是setTimeout需要的一个函数或字符串,所以这个立即执行函数就执行了,返回了一个函数作为结果,就相当于:

setTimeout(function() {    console.log("setTimeout");
}, 500);

然后这个函数会在500ms后执行。就这样。


查看完整回答
反对 回复 2018-10-22
  • 1 回答
  • 0 关注
  • 2030 浏览
慕课专栏
更多

添加回答

举报

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