2016-04-28 98 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

相关问题