javascript:从匿名函数返回值

时间:2016-04-04 10:58:24

标签: 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);

3 个答案:

答案 0 :(得分:3)

您需要调用回调并返回它的值,并且在bar函数内,您还需要返回结果



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




答案 1 :(得分:2)

您缺少return语句。目前尚不清楚你想要什么回归。

它的工作原理如下:

You are not name the submit button. Try to give name to submit button and try below:-
<form id="myFrom" onsubmit="submitForm();">
    <input type="text" id="name" name="name"  /><br><br>
    <input type="text" id="job" name="job" /><br><br>
    <input type="submit" id="submit" name="submit" />
</form>

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $('#name').focus();
    });
    function submitForm(){
        $.ajax({
            method: "POST",
            url: "fell.php",
            data: $("#myFrom").serialize(),
            success: function(status) {
                alert("successfull");
            }
        });
        return false;
    }
</script>

答案 2 :(得分:0)

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

db.collection.aggregate([{ $match : { type: "test" } }, {$group : { _id : null, count:{$sum:1} } }])