簡體   English   中英

在Javascript中將函數作為參數傳遞時返回值

[英]Return value when passing a function as an argument in Javascript

當我將對象傳遞給方法時,我有一些javascript代碼可以正常工作。 API文檔中 ,它說我還可以將一個函數傳遞給該方法。 嘗試此操作時,我可以傳遞參數並發出警報以驗證是否正在傳遞參數。 但是,我無法返回該值。

我缺少正確返回值的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"};
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM