javascript: 匿名函数的返回值

javascript: returning value from anonymous function

如何获取这段代码中var result的值?

我知道这是一个基本问题,但 3 天以来我一直在寻找解决方案。你能给我什么建议吗?

function foo(myCallback){
}

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

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

您需要调用回调和 return 它的值,在您的 bar 函数中,您还需要 return 结果

function foo(myCallback){
    // return the value of the call myCallback()
    return myCallback();
}

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

可以稍微简化一下

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

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

您缺少 return 语句。不清楚你想要什么 return.

它是这样工作的:

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);
});