Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript:从匿名函数返回值_Javascript_Callback_Anonymous - Fatal编程技术网

javascript:从匿名函数返回值

javascript:从匿名函数返回值,javascript,callback,anonymous,Javascript,Callback,Anonymous,如何在此代码中获取var result的值 我知道这是一个基本问题,但我从3天开始就在寻找解决方案。你能给我一些建议吗 function foo(myCallback){ } function bar() { var result = foo(function(){ var result = "hello"; return result; }); } var showResult = bar(); alert(showResult); 您需

如何在此代码中获取
var result
的值

我知道这是一个基本问题,但我从3天开始就在寻找解决方案。你能给我一些建议吗

function foo(myCallback){
}

function bar() {
    var result = foo(function(){
        var result = "hello"; 
        return result;
    });
}

var showResult = bar();
alert(showResult);

您需要调用回调函数并返回其值,在
bar
函数中,您还需要返回结果

函数foo(myCallback){ //返回调用myCallback()的值 返回myCallback(); } 功能条(){ var result=foo(函数(){ var result=“hello”; 返回结果; }); //返回结果 返回结果; } var showResult=bar();
警报(显示结果)您缺少返回语句。不清楚你想要返回什么

它的工作原理如下:

function foo(myCallback){
  return myCallback();
}

function bar(){
    var result = foo(function(){
        var result = "hello"; 
        return result;
    });
  return result;
}
var showResult = bar();
alert(showResult);

您无法使用回调,但幸运的是,您可以在回调函数中传递参数:

// define your functions
function foo(myCallback){
    myCallback();
}

function bar(callback){
    var result = foo(function(){
        var result = "hello"; 
        callback(result);
    });
}

// now run it
bar(function(showResult){
    alert(showResult);
});

您可以在
回调
函数foo(myCallback){}函数栏(cb){foo(function(){var result=“hello”;cb(result);}栏(function(res){alert(res);})中获得它
您甚至可以简单地将初始的
var结果
声明替换为
返回
本身。实际上,在本例中,all
var result=。。。;返回结果
可以替换为
return…
非常感谢Nina Scholz这是一个很好的答案!:-)很高兴看到你的第一个答案与我的问题相同。然后我可以看到一个简化的版本。谢谢大家!@Nina Scholz很抱歉,但系统告诉我我没有足够的声誉来投票支持你的答案…@zm455你应该可以投票支持你自己的问题,你可以肯定地将你自己问题的答案标记为正确:)你好@something stackoverflow的系统告诉我我不能投票支持我自己的帖子。我将非常高兴能够投票给那些帮助过我的人。我只需要2个人投票,我的问题,我将是15声誉,这是我需要能够接受答案和投票的分数