javascript - js setTimeout中return 函数如何自己执行的?
本文介绍了javascript - js setTimeout中return 函数如何自己执行的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
setTimeout(function() {
return function() {
console.log("setTimeout");
};
}(), 500);
function test(){
return function() {
console.log("test");
};
}
test();
上述执行结果为setTimeout。
test函数里边的console语句不执行很容易理解,返回一个函数但没有调用它,所以不执行,也就不会输出test。
不过setTimeout里边函数在500ms后执行,也是返回一个函数,怎么就执行了,谁调用的它呢?求教
解决方案
setTimeout
的第一个参数是这个东西:
function() {
return function() {
console.log("setTimeout");
};
}()
这是一个立即执行函数,并不是setTimeout
需要的一个函数或字符串,所以这个立即执行函数就执行了,返回了一个函数作为结果,就相当于:
setTimeout(function() {
console.log("setTimeout");
}, 500);
然后这个函数会在500ms后执行。就这样。
这篇关于javascript - js setTimeout中return 函数如何自己执行的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文