注册 登录
编程论坛 JavaScript论坛

帮忙看下一下 alert的结果为undefined

熊士武 发布于 2022-03-08 08:57, 797 次点击
function f2(name) {
return ('Hello ' + name);
}

function f1(callback) {
var name = prompt('请输入你的名字。');
window.setTimeout(function () {
var data= callback(name);
return data;
},5000)
}
var result=f1(f2);
alert(result);
1 回复
#2
apull2022-03-08 15:10
想实现啥效果呢
立即弹窗,把settimeout去掉,改为return  callback(name);
5秒后弹窗,把alert那句放到return data的位置。

简单来说window.setTimeout可以理解为另开了一个线程,在运行到alert的时候,window.setTimeout的匿名函数还没有执行,return data;也只是从匿名函数中返回,并不是f1的返回值。
1