2013-07-20 17 views
0

想象一下這樣的代碼:Javascript:與使用返回調用回調不同?

function foo(data) { 
    // ... do something with data 
} 

function do(userInput, callback) { 
    callback(userInput); 
} 

function doWithReturn(userInput, callback) { 
    return callback(userInput); 
} 

// ... 
do('Hello, World', foo); 
doWithReturn('Hello, World', foo); 

是否有過使用普通DO()和任何好處不doWithReturn()?

我問,因爲,假設,如果我們不知道是什麼富()在內部做了(即也許它有一個return語句,也許它只是觸發一個啞巴alert(data)),使用doWithReturn調用FOO()總是似乎只是「更安全」,因爲如果foo()碰巧返回一個值,那麼不使用doWithReturn顯然是錯誤的。

+0

完全取決於你寫的函數的性質。當你的do/doWithReturn函數變得更加真實世界的應用程序時,如果返回值應該傳遞,它通常會變得更清晰。 –

+0

在不知道內部工作原理的情況下使用一個函數是可以的,但是如果不知道它返回什麼,我就不會使用它。 – Christophe

回答

0

如果一個函數返回一個值,這表明它可能有用。我會爲該函數選擇一個名稱,並且一旦出現一個場景,其中某個返回值會有好處,那麼我會添加一個返回值。

我不知道這是否回答你的問題。