2016-04-28 43 views
1

我想了解JS中的回調。這裏是例子中,我與此刻的工作:傳遞匿名JS函數作爲回調

getData('http://fakedomain1234.com/userlist', writeData); 

document.getElementById('output').innerHTML += "show this before data ..."; 

function getData(dataURI, callback) { 
    // Normally you would actually connect to a server here. 
    // We're just going to simulate a 3-second delay. 
    var timer = setTimeout(function() { 
     var dataArray = [123, 456, 789, 012, 345, 678]; 
     callback(dataArray); 
    }, 3000); 
} 

function writeData(myData) { 
    document.getElementById('output').innerHTML += myData; 
} 

我的問題是:是否有可能通過一個匿名函數來getData(),而不是功能已定義?如果是這樣,你會怎麼做呢?

感謝先進!

+0

當然它的功能是,你試過嗎? – Bergi

+0

是的,現在我有。現在感覺比我想象的要簡單得多。 – hackrnaut

回答

2

就像你傳遞給setTimeout

getData('http://fakedomain1234.com/userlist', function(myData) { 
    document.getElementById('output').innerHTML += myData; 
}); 
1

就像你說:

getData('http://fakedomain1234.com/userlist', function(data) { 
    // contents of anonymous function 
}); 
+0

哦......如果這是我傳遞函數的方式,它是否仍然可以在getData中以相同方式調用它? – hackrnaut

+0

是的......同樣的方式 –

+0

當我把一個匿名函數作爲一個變量傳遞的時候,我遇到了麻煩,那就像傳遞一個已定義的函數一樣。謝謝你的澄清! – hackrnaut

相關問題