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

时间:2012-12-24 06:17:04

标签: javascript

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

我错过了正确返回值的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
//});

1 个答案:

答案 0 :(得分:0)

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

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

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