在Javascript中将函数作为参数传递时返回值

在Javascript中将函数作为参数传递时返回值,javascript,Javascript,我有一些javascript代码,当我将一个对象传递给一个方法时,这些代码可以正常工作。在中,它表示我还可以将函数传递给该方法。当我尝试此操作时,我能够传递参数并发出警报以验证是否传递了参数。但是,我无法返回该值 要正确返回值,我缺少哪一行javascript var result = {model: "todo"}; //$httpBackend.whenGET(/^\/api\//).respond(result); $httpBackend.whenGET(/^\/api\//).res

我有一些javascript代码,当我将一个对象传递给一个方法时,这些代码可以正常工作。在中,它表示我还可以将函数传递给该方法。当我尝试此操作时,我能够传递参数并发出警报以验证是否传递了参数。但是,我无法返回该值

要正确返回值,我缺少哪一行javascript

var result = {model: "todo"};

//$httpBackend.whenGET(/^\/api\//).respond(result);
$httpBackend.whenGET(/^\/api\//).respond(do_something);

function do_something(method, url, data) {
    alert("url "+url); // or whatever
    var result =  {model: "todo"};
    return result;
}

//From the API documentation
//   $httpBackend.whenGET('/.*/').respond(function(method, url, data) {
//     do something
//});

据推测,该函数的返回值将被忽略。当然,它没有在您当前的代码中使用

您需要让该函数影响作用域在函数本身之外的变量:

var result;
$httpBackend.whenGET(/^\/api\//).respond(do_something);
// Do something with `result`...
alert(result.model); // or whatever

function do_something(method, url, data) {
    alert("url "+url); // or whatever
    result =  {model: "todo"};
}

您使用的是哪种API?该值将返回给调用函数
do\u something
的任何函数。这不是您的代码,而是
中的任何内容。响应
。如果该函数不返回回调的值(可能是因为它似乎是一个异步调用),则无法获取返回值;工作正常。我正在使用此API。这仅在
$httpBackend.whenGET(/^\/api\/).response(做某事)时有效
是同步的(看起来不是这样,但我不知道API)。@FelixKling:一个公平的观察。我希望OP能把我们遗漏的细节补上。